From a0380beaf8ecfc12cf94e891bbb539a86c825194 Mon Sep 17 00:00:00 2001 From: fangxinjiang <3004453899@qq.com> Date: Tue, 27 Dec 2022 19:49:58 +0800 Subject: [PATCH] =?UTF-8?q?B=E7=AB=AF=E6=9C=8D=E5=8A=A1=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../archives/entity/MSetttleCustomerUser.java | 56 +++ .../archives/vo/MSetttleCustomerUserVo.java | 19 ++ .../MSetttleCustomerUserController.java | 118 +++++++ .../mapper/MSetttleCustomerUserMapper.java | 31 ++ .../service/MSetttleCustomerUserService.java | 32 ++ .../impl/MSetttleCustomerUserServiceImpl.java | 54 +++ .../mapper/MSetttleCustomerUserMapper.xml | 55 +++ .../common/core/constant/CommonConstants.java | 5 + .../core/constant/ServiceNameConstants.java | 5 + .../plus/v1/yifu/common/core/util/Common.java | 6 + .../plus/v1/yifu/common/core/vo/YifuUser.java | 9 + .../common/dapr/util/ArchivesDaprUtil.java | 10 + .../common/security/util/SecurityUtils.java | 10 +- .../yifu/admin/api/dto/UserInfo.java | 5 + .../yifu/admin/api/entity/SysMenu.java | 3 + .../yifu/admin/api/entity/SysRole.java | 3 + .../yifu/admin/api/vo/BusinessRoleMenuVo.java | 26 ++ .../yifu/admin/api/vo/BusinessUserVo.java | 41 +++ .../yifu/admin/api/vo/MenuTreeForVue.java | 112 ++++++ .../yifu/admin/api/vo/MenuVO.java | 107 ++++++ .../yifu/admin/api/vo/RoleMenuR.java | 26 ++ .../controller/BusinessUserController.java | 318 ++++++++++++++++++ .../v1/yifu/admin/mapper/SysRoleMapper.java | 6 + .../v1/yifu/admin/mapper/SysUserMapper.java | 2 + .../yifu/admin/mapper/SysUserRoleMapper.java | 2 + .../v1/yifu/admin/service/SysRoleService.java | 17 + .../admin/service/SysUserRoleService.java | 7 + .../v1/yifu/admin/service/SysUserService.java | 12 + .../service/impl/SysRoleServiceImpl.java | 11 + .../service/impl/SysUserRoleServiceImpl.java | 5 +- .../service/impl/SysUserServiceImpl.java | 78 +++++ .../main/resources/mapper/SysDictMapper.xml | 1 - .../main/resources/mapper/SysRoleMapper.xml | 24 ++ .../main/resources/mapper/SysUserMapper.xml | 26 ++ .../resources/mapper/SysUserRoleMapper.xml | 15 +- 35 files changed, 1253 insertions(+), 4 deletions(-) create mode 100644 yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/entity/MSetttleCustomerUser.java create mode 100644 yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/MSetttleCustomerUserVo.java create mode 100644 yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/controller/MSetttleCustomerUserController.java create mode 100644 yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/mapper/MSetttleCustomerUserMapper.java create mode 100644 yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/MSetttleCustomerUserService.java create mode 100644 yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/impl/MSetttleCustomerUserServiceImpl.java create mode 100644 yifu-archives/yifu-archives-biz/src/main/resources/mapper/MSetttleCustomerUserMapper.xml create mode 100644 yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/BusinessRoleMenuVo.java create mode 100644 yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/BusinessUserVo.java create mode 100644 yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/MenuTreeForVue.java create mode 100644 yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/MenuVO.java create mode 100644 yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/RoleMenuR.java create mode 100644 yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/controller/BusinessUserController.java diff --git a/yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/entity/MSetttleCustomerUser.java b/yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/entity/MSetttleCustomerUser.java new file mode 100644 index 000000000..8ab4ef978 --- /dev/null +++ b/yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/entity/MSetttleCustomerUser.java @@ -0,0 +1,56 @@ +package com.yifu.cloud.plus.v1.yifu.archives.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; + + +/** + * b端用户客户关系表 + * + * @author pwang + * @date 2020-08-26 12:00:12 + */ +@Data +@TableName("m_setttle_customer_user") +@Tag(name = "b端用户客户关系表") +public class MSetttleCustomerUser { + private static final long serialVersionUID = 1L; + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description = "主键", name = "id") + private String id; + /** + * 客户id + */ + @NotBlank(message = "客户idä¸èƒ½ä¸ºç©º") + @Length(max = 32, message = "客户idä¸èƒ½è¶…过32个å—符") + @ExcelAttribute(name = "客户id", isNotEmpty = true, errorInfo = "客户idä¸èƒ½ä¸ºç©º", maxLength = 32) + @Schema(description = "客户id", name = "customerId") + private String customerId; + /** + * 结算主体id + */ + @NotBlank(message = "结算主体idä¸èƒ½ä¸ºç©º") + @Length(max = 32, message = "结算主体idä¸èƒ½è¶…过32个å—符") + @ExcelAttribute(name = "结算主体id", isNotEmpty = true, errorInfo = "结算主体idä¸èƒ½ä¸ºç©º", maxLength = 32) + @Schema(description = "结算主体id", name = "settleId") + private String settleId; + /** + * 用户id + */ + @NotBlank(message = "用户idä¸èƒ½ä¸ºç©º") + @Length(max = 32, message = "用户idä¸èƒ½è¶…过32个å—符") + @ExcelAttribute(name = "用户id", isNotEmpty = true, errorInfo = "用户idä¸èƒ½ä¸ºç©º", maxLength = 32) + @Schema(description = "用户id", name = "userId") + private String userId; +} diff --git a/yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/MSetttleCustomerUserVo.java b/yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/MSetttleCustomerUserVo.java new file mode 100644 index 000000000..4210dfe2f --- /dev/null +++ b/yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/MSetttleCustomerUserVo.java @@ -0,0 +1,19 @@ +package com.yifu.cloud.plus.v1.yifu.archives.vo; + +import com.yifu.cloud.plus.v1.yifu.archives.entity.MSetttleCustomerUser; +import lombok.Data; + +/** + * @Author fxj + * @Description 用户客户关系包装类 + * @Date 16:32 2022/12/27 + * @Param + * @return +**/ +@Data +public class MSetttleCustomerUserVo extends MSetttleCustomerUser { + /** + * 客户å称 + **/ + private String customerName; +} diff --git a/yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/controller/MSetttleCustomerUserController.java b/yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/controller/MSetttleCustomerUserController.java new file mode 100644 index 000000000..8feac68e4 --- /dev/null +++ b/yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/controller/MSetttleCustomerUserController.java @@ -0,0 +1,118 @@ +package com.yifu.cloud.plus.v1.yifu.archives.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yifu.cloud.plus.v1.yifu.archives.entity.MSetttleCustomerUser; +import com.yifu.cloud.plus.v1.yifu.archives.service.MSetttleCustomerUserService; +import com.yifu.cloud.plus.v1.yifu.common.core.util.R; +import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog; +import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Map; + + +/** + * @Author fxj + * @Description b端用户客户关系表 + * @Date 16:24 2022/12/27 + * @Param + * @return +**/ +@RestController +@AllArgsConstructor +@RequestMapping("/msetttlecustomeruser") +@Tag(name = "b端用户客户关系表") +public class MSetttleCustomerUserController { + + private final MSetttleCustomerUserService mSetttleCustomerUserService; + + /** + * 简å•åˆ†é¡µæŸ¥è¯¢ + * + * @param page 分页对象 + * @param mSetttleCustomerUser b端用户客户关系表 + * @return + */ + @Operation(description = "简å•åˆ†é¡µæŸ¥è¯¢") + @GetMapping("/page") + public R<IPage<MSetttleCustomerUser>> getMSetttleCustomerUserPage(Page<MSetttleCustomerUser> page, MSetttleCustomerUser mSetttleCustomerUser) { + return new R<>(mSetttleCustomerUserService.getMSetttleCustomerUserPage(page, mSetttleCustomerUser)); + } + + + /** + * 通过id查询å•æ¡è®°å½• + * + * @param id + * @return R + */ + @Operation(description = "id查询") + @GetMapping("/{id}") + public R<MSetttleCustomerUser> getById(@PathVariable("id") String id) { + return new R<>(mSetttleCustomerUserService.getById(id)); + } + + /** + * 新增记录 + * + * @param mSetttleCustomerUser + * @return R + */ + @Operation(description = "新增(wxhr:msetttlecustomeruser_add)") + @PostMapping + @PreAuthorize("@pms.hasPermission('wxhr:msetttlecustomeruser_add')") + public R<Boolean> save(@Valid @RequestBody MSetttleCustomerUser mSetttleCustomerUser) { + return new R<>(mSetttleCustomerUserService.save(mSetttleCustomerUser)); + } + + /** + * 修改记录 + * + * @param mSetttleCustomerUser + * @return R + */ + @Operation(description = "修改(wxhr:msetttlecustomeruser_edit)") + @SysLog("修改b端用户客户关系表") + @PutMapping + @PreAuthorize("@pms.hasPermission('wxhr:msetttlecustomeruser_edit')") + public R<Boolean> update(@RequestBody MSetttleCustomerUser mSetttleCustomerUser) { + return new R<>(mSetttleCustomerUserService.updateById(mSetttleCustomerUser)); + } + + /** + * 通过idåˆ é™¤ä¸€æ¡è®°å½• + * + * @param id + * @return R + */ + @Operation(description = "åˆ é™¤(wxhr:msetttlecustomeruser_del)") + @SysLog("åˆ é™¤b端用户客户关系表") + @DeleteMapping("/{id}") + @PreAuthorize("@pms.hasPermission('wxhr:msetttlecustomeruser_del')") + public R<Boolean> removeById(@PathVariable String id) { + return new R<>(mSetttleCustomerUserService.removeById(id)); + } + /** + * 远程接å£èŽ·å–客户用户关系 + */ + @Inner + @PostMapping("/inner/getCustomerUserMap") + public Map<String,String> getCustomerUserMap(@RequestBody List<Integer> userIdList) { + return mSetttleCustomerUserService.getCustomerUser(userIdList); + } + /** + * 远程接å£èŽ·å–客户关系数 + */ + @Inner + @GetMapping("/inner/getCustomerCount") + public Integer getCustomerCount() { + return mSetttleCustomerUserService.getCustomerCount(); + } +} diff --git a/yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/mapper/MSetttleCustomerUserMapper.java b/yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/mapper/MSetttleCustomerUserMapper.java new file mode 100644 index 000000000..bf27a60e5 --- /dev/null +++ b/yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/mapper/MSetttleCustomerUserMapper.java @@ -0,0 +1,31 @@ +package com.yifu.cloud.plus.v1.yifu.archives.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yifu.cloud.plus.v1.yifu.archives.entity.MSetttleCustomerUser; +import com.yifu.cloud.plus.v1.yifu.archives.vo.MSetttleCustomerUserVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * b端用户客户关系表 + * + * @author pwang + * @date 2020-08-26 12:00:12 + */ +public interface MSetttleCustomerUserMapper extends BaseMapper<MSetttleCustomerUser> { + /** + * b端用户客户关系表简å•åˆ†é¡µæŸ¥è¯¢ + * + * @param mSetttleCustomerUser b端用户客户关系表 + * @return + */ + IPage<MSetttleCustomerUser> getMSetttleCustomerUserPage(Page<MSetttleCustomerUser> page, @Param("mSetttleCustomerUser") MSetttleCustomerUser mSetttleCustomerUser); + + + List<MSetttleCustomerUserVo> getCustomerUser(@Param("userIdList")List<Integer> userIdList); + + Integer getCustomerCount(); +} diff --git a/yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/MSetttleCustomerUserService.java b/yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/MSetttleCustomerUserService.java new file mode 100644 index 000000000..05347a36f --- /dev/null +++ b/yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/MSetttleCustomerUserService.java @@ -0,0 +1,32 @@ +package com.yifu.cloud.plus.v1.yifu.archives.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yifu.cloud.plus.v1.yifu.archives.entity.MSetttleCustomerUser; + +import java.util.List; +import java.util.Map; + +/** + * @Author fxj + * @Description b端用户客户关系表 + * @Date 16:34 2022/12/27 + * @Param + * @return +**/ +public interface MSetttleCustomerUserService extends IService<MSetttleCustomerUser> { + + /** + * b端用户客户关系表简å•åˆ†é¡µæŸ¥è¯¢ + * + * @param mSetttleCustomerUser b端用户客户关系表 + * @return + */ + IPage<MSetttleCustomerUser> getMSetttleCustomerUserPage(Page<MSetttleCustomerUser> page, MSetttleCustomerUser mSetttleCustomerUser); + + + Map<String,String> getCustomerUser(List<Integer> userIdList); + + Integer getCustomerCount(); +} diff --git a/yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/impl/MSetttleCustomerUserServiceImpl.java b/yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/impl/MSetttleCustomerUserServiceImpl.java new file mode 100644 index 000000000..1521d8924 --- /dev/null +++ b/yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/impl/MSetttleCustomerUserServiceImpl.java @@ -0,0 +1,54 @@ +package com.yifu.cloud.plus.v1.yifu.archives.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yifu.cloud.plus.v1.yifu.archives.entity.MSetttleCustomerUser; +import com.yifu.cloud.plus.v1.yifu.archives.mapper.MSetttleCustomerUserMapper; +import com.yifu.cloud.plus.v1.yifu.archives.service.MSetttleCustomerUserService; +import com.yifu.cloud.plus.v1.yifu.archives.vo.MSetttleCustomerUserVo; +import com.yifu.cloud.plus.v1.yifu.common.core.util.Common; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Author fxj + * @Description b端用户客户关系表 + * @Date 16:33 2022/12/27 + * @Param + * @return +**/ +@Service +public class MSetttleCustomerUserServiceImpl extends ServiceImpl<MSetttleCustomerUserMapper, MSetttleCustomerUser> implements MSetttleCustomerUserService { + + /** + * b端用户客户关系表简å•åˆ†é¡µæŸ¥è¯¢ + * + * @param mSetttleCustomerUser b端用户客户关系表 + * @return + */ + @Override + public IPage<MSetttleCustomerUser> getMSetttleCustomerUserPage(Page<MSetttleCustomerUser> page, MSetttleCustomerUser mSetttleCustomerUser) { + return baseMapper.getMSetttleCustomerUserPage(page, mSetttleCustomerUser); + } + + @Override + public Map<String, String> getCustomerUser(List<Integer> userIdList) { + Map<String,String> map = new HashMap<>(); + List<MSetttleCustomerUserVo> list = baseMapper.getCustomerUser(userIdList); + if(Common.isNotNull(list)){ + for(MSetttleCustomerUserVo vo :list){ + map.put(vo.getUserId(),vo.getCustomerName()); + } + } + return map; + } + + @Override + public Integer getCustomerCount() { + return baseMapper.getCustomerCount(); + } +} diff --git a/yifu-archives/yifu-archives-biz/src/main/resources/mapper/MSetttleCustomerUserMapper.xml b/yifu-archives/yifu-archives-biz/src/main/resources/mapper/MSetttleCustomerUserMapper.xml new file mode 100644 index 000000000..c11836050 --- /dev/null +++ b/yifu-archives/yifu-archives-biz/src/main/resources/mapper/MSetttleCustomerUserMapper.xml @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.yifu.cloud.plus.v1.yifu.archives.mapper.MSetttleCustomerUserMapper"> + <resultMap id="mSetttleCustomerUserMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.MSetttleCustomerUser"> + <id property="id" column="id"/> + <result property="customerId" column="customer_id"/> + <result property="settleId" column="settle_id"/> + <result property="userId" column="user_id"/> + </resultMap> + <sql id="Base_Column_List"> + a.id, + a.customer_id, + a.settle_id, + a.user_id + </sql> + <sql id="mSetttleCustomerUser_where"> + <if test="mSetttleCustomerUser != null"> + <if test="mSetttleCustomerUser.id != null and mSetttleCustomerUser.id.trim() != ''"> + AND a.id = #{mSetttleCustomerUser.id} + </if> + <if test="mSetttleCustomerUser.customerId != null and mSetttleCustomerUser.customerId.trim() != ''"> + AND a.customer_id = #{mSetttleCustomerUser.customerId} + </if> + <if test="mSetttleCustomerUser.settleId != null and mSetttleCustomerUser.settleId.trim() != ''"> + AND a.settle_id = #{mSetttleCustomerUser.settleId} + </if> + <if test="mSetttleCustomerUser.userId != null and mSetttleCustomerUser.userId.trim() != ''"> + AND a.user_id = #{mSetttleCustomerUser.userId} + </if> + </if> + </sql> + <!--mSetttleCustomerUser简å•åˆ†é¡µæŸ¥è¯¢--> + <select id="getMSetttleCustomerUserPage" resultMap="mSetttleCustomerUserMap"> + SELECT + <include refid="Base_Column_List"/> + FROM m_setttle_customer_user a + <where> + 1=1 + <include refid="mSetttleCustomerUser_where"/> + </where> + </select> + <select id="getCustomerUser" resultType="com.yifu.cloud.plus.v1.yifu.archives.vo.MSetttleCustomerUserVo"> + select a.user_id,GROUP_CONCAT(DISTINCT b.CUSTOMER_NAME) as CUSTOMER_NAME from m_setttle_customer_user a + left join t_customer_info b on a.customer_id = b.id + where a.user_id in + <foreach item="item" index="index" collection="userIdList" open="(" separator="," close=")"> + '${item}' + </foreach> + GROUP BY a.user_id + </select> + <select id="getCustomerCount" resultType="java.lang.Integer"> + SELECT count(DISTINCT customer_id) from m_setttle_customer_user a ; + </select> + +</mapper> diff --git a/yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/constant/CommonConstants.java b/yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/constant/CommonConstants.java index c40c03846..d21c2dfb6 100644 --- a/yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/constant/CommonConstants.java +++ b/yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/constant/CommonConstants.java @@ -507,4 +507,9 @@ public interface CommonConstants { public static final String A_CREATE_BY = "a.CREATE_BY"; String SETTLE_DOMAIN_GET_ERROR = "获å–结算主体信æ¯å¤±è´¥ï¼"; + /** + * b端机构节点 + * @Author fxj + **/ + public static final long HR_B_ORG_ID = 295; } diff --git a/yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/constant/ServiceNameConstants.java b/yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/constant/ServiceNameConstants.java index 6482eac2f..4d9c19a27 100644 --- a/yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/constant/ServiceNameConstants.java +++ b/yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/constant/ServiceNameConstants.java @@ -45,4 +45,9 @@ public interface ServiceNameConstants { * hrms-archivesæ¨¡å— */ String ARCHIVES_SERVICE = "yifu-archives"; + + /** + * hr b端Client id + **/ + String CLIENT_ID_HR_B = "hrCustomer"; } diff --git a/yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/util/Common.java b/yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/util/Common.java index d938058e4..b2b31ade1 100644 --- a/yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/util/Common.java +++ b/yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/util/Common.java @@ -311,6 +311,12 @@ public class Common { } return null; } + public static String isNotNullToStr(Long value) { + if (Common.isNotNull(value)){ + return Long.toString(value); + } + return null; + } public static Integer isNotNullToInt(String value) { if (Common.isNotNull(value)){ diff --git a/yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/vo/YifuUser.java b/yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/vo/YifuUser.java index a2d2bcae2..b018d03c3 100644 --- a/yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/vo/YifuUser.java +++ b/yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/vo/YifuUser.java @@ -17,10 +17,13 @@ package com.yifu.cloud.plus.v1.yifu.common.core.vo; import lombok.Getter; +import lombok.Setter; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.User; import java.util.Collection; +import java.util.List; +import java.util.Map; /** * @author lengleng @@ -70,6 +73,12 @@ public class YifuUser extends User { @Getter private final String userGroup; + /** + * key是客户端id,val是角色id数组 + */ + @Getter + @Setter + private Map<String, List<Long>> clientRoleMap; /** * LDAP_DN */ diff --git a/yifu-common/yifu-common-dapr/src/main/java/com/yifu/cloud/plus/v1/yifu/common/dapr/util/ArchivesDaprUtil.java b/yifu-common/yifu-common-dapr/src/main/java/com/yifu/cloud/plus/v1/yifu/common/dapr/util/ArchivesDaprUtil.java index 511c88636..c6136e988 100644 --- a/yifu-common/yifu-common-dapr/src/main/java/com/yifu/cloud/plus/v1/yifu/common/dapr/util/ArchivesDaprUtil.java +++ b/yifu-common/yifu-common-dapr/src/main/java/com/yifu/cloud/plus/v1/yifu/common/dapr/util/ArchivesDaprUtil.java @@ -30,6 +30,16 @@ import java.util.Map; public class ArchivesDaprUtil { @Autowired private DaprArchivesProperties daprArchivesProperties; + + public R<Map<String,String>> getCustomerUserMap(List<String> userList){ + R<Map> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/msetttlecustomeruser/inner/getCustomerUserMap" , JSON.toJSONString(userList), Map.class, SecurityConstants.FROM_IN); + if (Common.isEmpty(res)){ + return R.failed("获å–档案派å•ä¿¡æ¯å¤±è´¥ï¼"); + } + Map<String,String> map = JSON.parseObject(JSON.toJSONString(res.getData()),new TypeReference<HashMap<String,String>>(){}); + return R.ok(map); + } + /** * @Author fxj * @Description 获å–æ´¾å•æ ¡éªŒéœ€è¦çš„æ¡£æ¡ˆä¿¡æ¯ diff --git a/yifu-common/yifu-common-security/src/main/java/com/yifu/cloud/plus/v1/yifu/common/security/util/SecurityUtils.java b/yifu-common/yifu-common-security/src/main/java/com/yifu/cloud/plus/v1/yifu/common/security/util/SecurityUtils.java index 172f47a47..5f9840dde 100644 --- a/yifu-common/yifu-common-security/src/main/java/com/yifu/cloud/plus/v1/yifu/common/security/util/SecurityUtils.java +++ b/yifu-common/yifu-common-security/src/main/java/com/yifu/cloud/plus/v1/yifu/common/security/util/SecurityUtils.java @@ -81,5 +81,13 @@ public class SecurityUtils { }); return roleIds; } - + /** + * 获å–用户clientç»ˆç«¯è§’è‰²ä¿¡æ¯ + * + * @return è§’è‰²é›†åˆ + */ + public List<Long> getRolesByClient(String client) { + YifuUser user = getUser(); + return null != user && null != user.getClientRoleMap() ? user.getClientRoleMap().get(client) : null; + } } diff --git a/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/dto/UserInfo.java b/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/dto/UserInfo.java index ab1eddf1e..8942dcc74 100644 --- a/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/dto/UserInfo.java +++ b/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/dto/UserInfo.java @@ -23,6 +23,7 @@ import lombok.Data; import java.io.Serializable; import java.util.List; +import java.util.Map; /** * @author lengleng @@ -64,4 +65,8 @@ public class UserInfo implements Serializable { */ private List<SysPost> postList; + /** + * key是客户端id,val是角色id数组 + */ + private Map<String,List<Long>> clientRoleMap; } diff --git a/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/entity/SysMenu.java b/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/entity/SysMenu.java index 4f327bd22..c8f29af4d 100644 --- a/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/entity/SysMenu.java +++ b/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/entity/SysMenu.java @@ -115,4 +115,7 @@ public class SysMenu extends BaseEntity { */ @Schema(description = "是å¦ç³»ç»Ÿå†…ç½®") private String systemFlag; + + @NotBlank(message = "所属终端 ä¸èƒ½ä¸ºç©º") + private String clientId; } diff --git a/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/entity/SysRole.java b/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/entity/SysRole.java index 8d72903bf..aa56cc21a 100644 --- a/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/entity/SysRole.java +++ b/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/entity/SysRole.java @@ -64,4 +64,7 @@ public class SysRole extends BaseEntity { @Schema(description = "是å¦æ˜¯ç³»ç»Ÿå†…ç½®") private String systemFlag; + @NotBlank(message = "所属终端 ä¸èƒ½ä¸ºç©º") + private String clientId; + } diff --git a/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/BusinessRoleMenuVo.java b/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/BusinessRoleMenuVo.java new file mode 100644 index 000000000..f81ab6b31 --- /dev/null +++ b/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/BusinessRoleMenuVo.java @@ -0,0 +1,26 @@ +package com.yifu.cloud.plus.v1.yifu.admin.api.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.Data; + +/** + * @program: master + * @description: b端角色èœå•åŒ…装类 + * @author: pwang + * @create: 2020-08-25 21:13 + **/ +@Data +@Tag(name = "b端角色èœå•åŒ…装类") +public class BusinessRoleMenuVo { + @Schema(description ="角色id") + private String roleId; + @Schema(description ="角色å称") + private String roleName; + @Schema(description ="èœå•id") + private String menuId; + @Schema(description ="èœå•å称") + private String name; + @Schema(description ="èœå•æŽ’åº") + private String sort; +} diff --git a/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/BusinessUserVo.java b/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/BusinessUserVo.java new file mode 100644 index 000000000..4744fdccf --- /dev/null +++ b/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/BusinessUserVo.java @@ -0,0 +1,41 @@ +package com.yifu.cloud.plus.v1.yifu.admin.api.vo; + +import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser; +import lombok.Data; + +import java.util.List; + +/** + * b端客户包装类 + * @program: master + * @description: + * @author: pwang + * @create: 2020-08-25 14:05 + **/ +@Data +public class BusinessUserVo extends SysUser { + + /** + * 客户å•ä½ + * @Author fxj + * @Date 2020-08-25 14:54 + * @param null + * @return + **/ + private String customerName; + /** + * B端的部门ID + * @author fxj + */ + private String organIdB; + /** + * B端的部门ç‰çº§ + * @author fxj + */ + private String organLevelB; + /** + * 用户IDs + * @author fxj + */ + private List<String> userIdsB; +} diff --git a/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/MenuTreeForVue.java b/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/MenuTreeForVue.java new file mode 100644 index 000000000..052a4c5d2 --- /dev/null +++ b/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/MenuTreeForVue.java @@ -0,0 +1,112 @@ + +package com.yifu.cloud.plus.v1.yifu.admin.api.vo; + +import cn.hutool.json.JSONObject; +import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysMenu; +import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; +import com.yifu.cloud.plus.v1.yifu.common.core.util.Common; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = true) +public class MenuTreeForVue extends TreeNode { + private Integer id; + private String icon; + private String name; + private String path; + private String authority; + private String redirect; + private String type; + private Integer sort; + private String url; + /*private Meta meta;*/ + private JSONObject meta; + private String component; + private String route = "1"; + private String alwaysShow; + private boolean hidden; + + public MenuTreeForVue() { + } + + public MenuTreeForVue(int id, String name, int parentId) { + this.id = id; + this.parentId = Common.isNotNullToStr(parentId); + this.name = name; + /*this.meta=new Meta(name,null,null);*/ + this.meta =new JSONObject(); + meta.put("title",name); + } + + public MenuTreeForVue(int id, String name, MenuTreeForVue parent) { + this.id = id; + this.parentId = Common.isNotNullToStr(parent.getId()); + this.name = name; + /*this.meta=new Meta(name,null,null);*/ + this.meta =new JSONObject(); + meta.put("title",name); + } + + public MenuTreeForVue(MenuVO menuVo) { + this.id = menuVo.getMenuId(); + this.parentId = Common.isNotNullToStr(menuVo.getParentId()); + this.icon = menuVo.getIcon(); + this.name = menuVo.getName(); + if (null != menuVo.getPath()){ + this.path = menuVo.getPath().replace("#",""); + } + if (CommonConstants.ONE_STRING.equals(menuVo.getType())){ + this.component = menuVo.getPermission(); + }else { + this.component = this.path; + } + this.type = menuVo.getType(); + if(CommonConstants.ZERO_STRING.equals(menuVo.getType())){ + alwaysShow = "true"; + hidden = false; + }else{ + alwaysShow = "false"; + hidden = true; + } + this.sort = menuVo.getSort(); + this.url = menuVo.getUrl(); + /*this.meta=new Meta(menuVo.getName(),menuVo.getIcon(),menuVo.getKeepAlive());*/ + this.meta =new JSONObject(); + meta.put("title",menuVo.getName()); + meta.put("icon",menuVo.getIcon()); + meta.put("keepAlive",menuVo.getKeepAlive()); + /*this.authority = menuVo.getPermission();*/ + } + + public MenuTreeForVue(SysMenu menuVo) { + this.id = menuVo.getMenuId().intValue(); + this.parentId = Common.isNotNullToStr(menuVo.getParentId()); + this.icon = menuVo.getIcon(); + this.name = menuVo.getName(); + if (null != menuVo.getPath()){ + this.path = menuVo.getPath().replace("#",""); + } + if (CommonConstants.ONE_STRING.equals(menuVo.getType())){ + this.component = menuVo.getPermission(); + }else { + this.component = this.path; + } + this.type = menuVo.getType(); + if(CommonConstants.ZERO_STRING.equals(menuVo.getType())){ + alwaysShow = "true"; + hidden = false; + }else{ + alwaysShow = "false"; + hidden = true; + } + this.sort = menuVo.getSortOrder(); + this.url = menuVo.getPath(); + /*this.meta=new Meta(menuVo.getName(),menuVo.getIcon(),menuVo.getKeepAlive());*/ + this.meta =new JSONObject(); + meta.put("title",menuVo.getName()); + meta.put("icon",menuVo.getIcon()); + meta.put("keepAlive",menuVo.getKeepAlive()); + /*this.authority = menuVo.getPermission();*/ + } +} diff --git a/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/MenuVO.java b/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/MenuVO.java new file mode 100644 index 000000000..0798310ae --- /dev/null +++ b/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/MenuVO.java @@ -0,0 +1,107 @@ +package com.yifu.cloud.plus.v1.yifu.admin.api.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * èœå•æƒé™è¡¨ + * </p> + * + */ +@Data +public class MenuVO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * èœå•ID + */ + private Integer menuId; + /** + * èœå•å称 + */ + private String name; + /** + * èœå•æƒé™æ ‡è¯† + */ + private String permission; + /** + * 父èœå•ID + */ + private Integer parentId; + /** + * å›¾æ ‡ + */ + private String icon; + /** + * 一个路径 + */ + private String path; + /** + * 排åºå€¼ + */ + private Integer sort; + /** + * èœå•ç±»åž‹ (0èœå• 1按钮) + */ + private String type; + /** + * 是å¦ç¼“冲 + */ + private String keepAlive; + /** + * 创建时间 + */ + private LocalDateTime createTime; + /** + * 更新时间 + */ + private LocalDateTime updateTime; + /** + * 0--æ£å¸¸ 1--åˆ é™¤ + */ + private String delFlag; + + /** + * èœå•æˆ–功能按钮访问的URL + */ + private String url; + + /** + * 用于功能按钮æƒé™è®¾ç½®çš„临时å˜é‡ + */ + private Integer roleOwnerButton; + /** + * 功能或èœå•æè¿° + */ + private String description; + + /** + * + * 终端主键ID + */ + private String clientId; + + @Override + public int hashCode() { + return menuId.hashCode(); + } + + /** + * menuId 相åŒåˆ™ç›¸åŒ + * + * @param obj + * @return + */ + @Override + public boolean equals(Object obj) { + if (obj instanceof MenuVO) { + Integer targetMenuId = ((MenuVO) obj).getMenuId(); + return menuId.equals(targetMenuId); + } + return super.equals(obj); + } +} diff --git a/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/RoleMenuR.java b/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/RoleMenuR.java new file mode 100644 index 000000000..9ad49f962 --- /dev/null +++ b/yifu-upms/yifu-upms-api/src/main/java/com/yifu.cloud.plus.v1/yifu/admin/api/vo/RoleMenuR.java @@ -0,0 +1,26 @@ +package com.yifu.cloud.plus.v1.yifu.admin.api.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.Data; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @program: master + * @description: b端角色èœå•è¿”回结果类 + * @author: pwang + * @create: 2020-08-25 21:20 + **/ +@Data +@Tag(name = "b端角色èœå•è¿”回结果类") +public class RoleMenuR { + @Schema(description = "已有角色集åˆ") + private Set<String> havaRole ; + @Schema(description = "æƒé™ç»„å称集åˆ,keyæƒé™ç»„id,valueæƒé™ç»„å称") + private Map<String, String> roleNameMap ; + @Schema(description ="èœå•é›†åˆï¼Œkeyæƒé™ç»„id,valueèœå•é›†åˆ") + private Map<String, List<BusinessRoleMenuVo>> roleMenuMap ; +} diff --git a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/controller/BusinessUserController.java b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/controller/BusinessUserController.java new file mode 100644 index 000000000..bc4838958 --- /dev/null +++ b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/controller/BusinessUserController.java @@ -0,0 +1,318 @@ +package com.yifu.cloud.plus.v1.yifu.admin.controller; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysMenu; +import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser; +import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUserRole; +import com.yifu.cloud.plus.v1.yifu.admin.api.util.TreeUtil; +import com.yifu.cloud.plus.v1.yifu.admin.api.vo.BusinessRoleMenuVo; +import com.yifu.cloud.plus.v1.yifu.admin.api.vo.BusinessUserVo; +import com.yifu.cloud.plus.v1.yifu.admin.api.vo.MenuTreeForVue; +import com.yifu.cloud.plus.v1.yifu.admin.api.vo.RoleMenuR; +import com.yifu.cloud.plus.v1.yifu.admin.service.*; +import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; +import com.yifu.cloud.plus.v1.yifu.common.core.constant.ServiceNameConstants; +import com.yifu.cloud.plus.v1.yifu.common.core.util.Common; +import com.yifu.cloud.plus.v1.yifu.common.core.util.R; +import com.yifu.cloud.plus.v1.yifu.common.core.util.RedisUtil; +import com.yifu.cloud.plus.v1.yifu.common.dapr.util.ArchivesDaprUtil; +import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.oauth2.provider.OAuth2Authentication; +import org.springframework.security.oauth2.provider.token.RemoteTokenServices; +import org.springframework.web.bind.annotation.*; + +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @program: master + * @description: b端用户æƒé™æŽ§åˆ¶å™¨ + * @author: fxj + * @create: 2022-09-25 11:12 + **/ +@RestController +@AllArgsConstructor +@RequestMapping("/customerBusiness/user") +@Tag(name = "b端用户æƒé™æŽ§åˆ¶å™¨") +@Slf4j +public class BusinessUserController { + + private final SysUserService userService; + private final SysMenuService sysMenuService; + @Autowired + protected RemoteTokenServices remoteTokenServices; + @Autowired + protected ArchivesDaprUtil remoteBasicArchivesService; + + private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder(); + + private final SysRoleService roleService; + + private final SysUserRoleService userRoleService; + + // å—å…¸ + private final SysDictService sysDictService; + + private final RedisUtil redisUtil; + + + /** + * 获å–b端用户分页 + * + * @param page + * @return + * @Author fxj + * @Date 2020-08-25 11:25 + **/ + @GetMapping("/page") + @Operation(description = "B端用户分页") + public R<Page<BusinessUserVo>> getBusinessUserPage(Page<BusinessUserVo> page, BusinessUserVo user) { + user.setDeptId(CommonConstants.HR_B_ORG_ID); + Page<BusinessUserVo> businessUserVoPage = userService.getBusinessUserVoPage(page, user); + //获å–å®¢æˆ·ä¿¡æ¯ + if(Common.isNotNull(businessUserVoPage.getRecords())){ + List<String> userList = new ArrayList<>(); + // å°è£…查询æ¡ä»¶ + for(BusinessUserVo vo:businessUserVoPage.getRecords()){ + userList.add(vo.getUserId()); + } + Map<String, String> customerUserMap = null; + // 查询æ¡ä»¶å®¢æˆ·å + R<Map<String, String>> resR = remoteBasicArchivesService.getCustomerUserMap(userList); + if (Common.isNotNull(resR) && Common.isNotNull(resR.getData())){ + customerUserMap = resR.getData(); + } + //ä¿¡æ¯å°è£… + if(Common.isNotNull(customerUserMap)){ + for(BusinessUserVo vo:businessUserVoPage.getRecords()){ + vo.setCustomerName(customerUserMap.get(vo.getUserId().toString())); + } + } + } + return new R<>(businessUserVoPage); + } + /** + * 新建b端用户 + * + * @return + * @Author fxj + * @Date 2020-08-25 11:25 + **/ + @PostMapping("/saveBusinessUser") + @Operation(description = "新建b端用户") + public R<SysUser> saveBusinessUser(@RequestBody SysUser user) { + //æ•°æ®éªŒè¯ + if(Common.isEmpty(user.getNickname())){ + return R.failed("姓åä¸èƒ½ä¸ºç©º"); + } + //æ•°æ®å¡«å…… + user.setUsername(user.getUsername()); + user.setLockFlag(CommonConstants.ZERO_STRING); + user.setDelFlag(CommonConstants.ZERO_STRING); + user.setCreateTime(LocalDateTime.now()); + user.setDeptName("客户å•ä½"); + user.setDeptId(CommonConstants.HR_B_ORG_ID); + //ä½¿ç”¨æ ¹èŠ‚ç‚¹ + user.setDeptId(CommonConstants.HR_B_ORG_ID); + if (Common.isNotNull(user.getPassword())){ + user.setPassword(ENCODER.encode(user.getPassword())); + } + //系统规定检查 + SysUser sysUser = null; + SysUser userTemp = null; + if (null != user && null != user.getUserId()){ + sysUser = userService.getOne(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getUsername,user.getUsername()).ne(SysUser::getUserId,user.getUserId()) + .last(CommonConstants.LAST_ONE_SQL)); + if (Common.isNotNull(user.getPhone())){ + userTemp = userService.getOne(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getPhone, user.getPhone()).ne(SysUser::getUserId,user.getUserId()) + .last(CommonConstants.LAST_ONE_SQL)); + } + }else { + sysUser = userService.getOne(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getUsername,user.getUsername()).last(CommonConstants.LAST_ONE_SQL)); + if (Common.isNotNull(user.getPhone())){ + userTemp = userService.getOne(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getPhone, user.getPhone()).last(CommonConstants.LAST_ONE_SQL)); + } + } + if(null != sysUser){ + return R.failed("æ“作失败,该账å·å·²å˜åœ¨ï¼"); + } + if(null != userTemp){ + return R.failed("æ“作失败,该手机å·å·²å˜åœ¨ï¼"); + } + //å˜å‚¨å¹¶è¿”å›žæ•°æ® + boolean res; + if (Common.isNotNull(user.getUserId())){ + res = userService.updateById(user); + }else { + res = userService.save(user); + } + if(res){ + return new R<>(user); + }else{ + return R.failed("æ’入失败请è”系管ç†å‘˜ï¼"); + } + } + + /** + * 获å–b端角色信æ¯å’Œèœå• + * + * @return + * @Author fxj + * @Date 2020-08-25 11:25 + **/ + @GetMapping("/getRoleAndMenu") + @Operation(description = "获å–b端角色信æ¯å’Œèœå•,TYPE:类型 0:èœå• 1:按钮 2:èœå•åŠ 按钮(默认查èœå•ï¼‰,userId:用户id") + public R<RoleMenuR> getRoleAndMenu(String type, Integer userId) { + //结果声明 + RoleMenuR result = new RoleMenuR(); + //结果åˆå§‹åŒ– + Map<String,String> roleNameMap = new HashMap<>(); + Map<String, List<BusinessRoleMenuVo>> roleMenuMap = new HashMap<>(); + result.setRoleNameMap(roleNameMap); + result.setRoleMenuMap(roleMenuMap); + + //默认获å–èœå• + if(Common.isEmpty(type)){ + type = CommonConstants.ZERO_STRING; + }else if(CommonConstants.dingleDigitStrArray[2].equals(type)){ + type = null; + } + List<BusinessRoleMenuVo> list = roleService.getRoleAndMenu(type); + //组装结果 + if(Common.isNotNull(list)){ + //临时å˜é‡ + List<BusinessRoleMenuVo> businessRoleMenuVo = null; + for(BusinessRoleMenuVo vo:list){ + //ä¸æ˜¯ç¬¬ä¸€æ¬¡å‡ºçŽ°çš„角色把èœå•æ”¾å…¥å¯¹åº”map的对应集åˆå³å¯ + if(roleMenuMap.containsKey(vo.getRoleId())){ + businessRoleMenuVo = roleMenuMap.get(vo.getRoleId()); + }else{ + //第一次出现的角色创建一个集åˆæŠŠèœå•æ”¾è¿›åŽ»ï¼Œå¹¶æŠŠè§’色信æ¯æ”¾è¿›roleNameMapåšæƒé™ç»„展示 + businessRoleMenuVo = new ArrayList<>(); + roleMenuMap.put(vo.getRoleId(),businessRoleMenuVo); + roleNameMap.put(vo.getRoleId(),vo.getRoleName()); + } + businessRoleMenuVo.add(vo); + } + //获å–用户已有æƒé™ + if(null != userId){ + result.setHavaRole(roleService.getRoleByUserIdAndClient(userId, ServiceNameConstants.CLIENT_ID_HR_B)); + } + } + return new R<>(result); + } + /** + * 返回当å‰ç”¨æˆ·çš„æ ‘å½¢èœå•é›†åˆ + * + * @return 当å‰ç”¨æˆ·çš„æ ‘å½¢èœå• + */ + @Operation(description = "返回当å‰ç”¨æˆ·çš„æ ‘å½¢èœå•é›†åˆ") + @GetMapping("/menu") + public R<List<MenuTreeForVue>> getUserMenuForVue(@RequestHeader(value = HttpHeaders.AUTHORIZATION, required = false) String authHeader, String type) { + OAuth2Authentication oAuth2Auth = remoteTokenServices.loadAuthentication(authHeader.replace("bearer ", "").trim()); + // 获å–符åˆæ¡ä»¶çš„èœå• + Set<SysMenu> all = new HashSet<>(); + SecurityUtils.getRolesByClient(oAuth2Auth.getOAuth2Request().getClientId()) + .forEach(roleId -> all.addAll(sysMenuService.findMenuByRoleId(roleId))); + List<MenuTreeForVue> menuTreeList; + if (Common.isNotNull(type)) { + menuTreeList = all.stream() + .filter(menuVo -> type.equals(menuVo.getType())) + .map(MenuTreeForVue::new) + .sorted(Comparator.comparingInt(MenuTreeForVue::getSort)) + .collect(Collectors.toList()); + } else { + menuTreeList = all.stream() + .map(MenuTreeForVue::new) + .sorted(Comparator.comparingInt(MenuTreeForVue::getSort)) + .collect(Collectors.toList()); + } + return new R<>(TreeUtil.bulid(menuTreeList, -1)); + } + /** + * 获å–b端角色信æ¯å’Œèœå• + * + * @return + * @Author fxj + * @Date 2020-08-25 11:25 + * name = "roleList", value = "角色(æƒé™ç»„)id集åˆ" + * name = "userId", value = "用户id" + **/ + @PostMapping("/saveRoleM") + @Operation(description = "b端用户角色关系ä¿å˜") + public R<String> saveRoleM(@RequestBody List<Long> roleList, Integer userId) { + if(null == userId){ + return R.failed("用户idä¸èƒ½ä¸ºç©ºï¼"); + } + if(Common.isEmpty(roleList)){ + return R.failed("æƒé™ç»„ä¸èƒ½ä¸ºç©ºï¼"); + } + List<SysUserRole> list = new ArrayList<>(); + SysUserRole userRole = null; + for(Long role:roleList){ + if( null != role ){ + userRole = new SysUserRole(); + userRole.setRoleId(role); + userRole.setUserId(Common.isNotNullToStr(userId)); + list.add(userRole); + } + } + if(Common.isNotNull(list)){ + userRoleService.removeByUserAndClientId(userId, ServiceNameConstants.CLIENT_ID_HR_B); + userRoleService.saveBatch(list); + //æ¸…é™¤ç”¨æˆ·ç¼“å˜ + SysUser user = userService.getById(userId); + if(null != user){ + redisUtil.remove(ServiceNameConstants.UMPS_SERVICE + "_user_details::" + user.getUsername()); + if( Common.isNotNull(user.getPhone())){ + redisUtil.remove(ServiceNameConstants.UMPS_SERVICE + "_user_details_phone::" + user.getPhone()); + } + } + return R.ok(CommonConstants.RESULT_DATA_SUCESS); + }else{ + return R.failed("ä¿å˜å¤±è´¥ï¼Œç”¨æˆ·è§’色数æ®é”™è¯¯ï¼"); + } + } + + /** + * b端获å–ç”¨æˆ·ä¿¡æ¯ + * + * @return + * @Author fxj + * @Date 2020-08-25 11:25 + **/ + @GetMapping("/userInfo/{userId}") + @Operation(description = "b端获å–用户信æ¯") + public R<SysUser> getUserInfo(@PathVariable Integer userId) { + //获å–ç”¨æˆ·ä¿¡æ¯ + return new R<>(userService.getById(userId)); + } + /** + * å˜åœ¨çš„方法 å¤åˆ¶åˆ°è¿™ 便于控制æƒé™ 通过ID更新用户é”å®šçŠ¶æ€ + * + * @param id ID + * @return ç”¨æˆ·ä¿¡æ¯ + */ + @Operation(description = "通过ID更新用户é”定状æ€") + @GetMapping("/updateLock") + public R<Boolean> updateLockFlag(@RequestParam("id") Integer id, @RequestParam("lockFlag") String lockFlag) { + SysUser user = userService.getById(id); + if (null == user) { + return R.failed("æ“ä½œå¤±è´¥ï¼Œæ— æ¤ç”¨æˆ·ï¼"); + } + if(CommonConstants.HR_B_ORG_ID != user.getDeptId()){ + return R.failed("æ“作失败,æ¤å®¢æˆ·éžb端用户,ä¸å…许在æ¤ç¦ï¼ˆå¯ï¼‰ç”¨ï¼"); + } + return new R<>(userService.updateLockFlagById(user, lockFlag)); + } +} diff --git a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/mapper/SysRoleMapper.java b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/mapper/SysRoleMapper.java index 52bcfd8de..c94b046ac 100644 --- a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/mapper/SysRoleMapper.java +++ b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/mapper/SysRoleMapper.java @@ -18,9 +18,12 @@ package com.yifu.cloud.plus.v1.yifu.admin.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysRole; +import com.yifu.cloud.plus.v1.yifu.admin.api.vo.BusinessRoleMenuVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Set; /** * <p> @@ -40,4 +43,7 @@ public interface SysRoleMapper extends BaseMapper<SysRole> { */ List<SysRole> listRolesByUserId(String userId); + List<BusinessRoleMenuVo> getRoleAndMenu(@Param("type")String type); + + Set<String> getRoleByUserIdAndClient(@Param("userId")Integer userId, @Param("clientId") String clientId); } diff --git a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/mapper/SysUserMapper.java b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/mapper/SysUserMapper.java index 08e94e41f..9ab8c1434 100644 --- a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/mapper/SysUserMapper.java +++ b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/mapper/SysUserMapper.java @@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yifu.cloud.plus.v1.yifu.admin.api.dto.UserDTO; import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser; +import com.yifu.cloud.plus.v1.yifu.admin.api.vo.BusinessUserVo; import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserVO; import com.yifu.cloud.plus.v1.yifu.common.ldap.entity.PersonVo; import org.apache.ibatis.annotations.Mapper; @@ -75,4 +76,5 @@ public interface SysUserMapper extends BaseMapper<SysUser> { void updateUser(@Param("list") List<Map<String,Object>> list); + Page<BusinessUserVo> getBusinessUserVoPage(Page page,@Param("query") BusinessUserVo user); } diff --git a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/mapper/SysUserRoleMapper.java b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/mapper/SysUserRoleMapper.java index 6710e5f8d..9d217c2f1 100644 --- a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/mapper/SysUserRoleMapper.java +++ b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/mapper/SysUserRoleMapper.java @@ -41,4 +41,6 @@ public interface SysUserRoleMapper extends BaseMapper<SysUserRole> { */ Boolean deleteByUserId(@Param("userId") String userId); + Boolean removeByUserAndClientId(@Param("userId")Integer userId,@Param("clientId") String clientId); + } diff --git a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/SysRoleService.java b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/SysRoleService.java index d5072e9bd..e6c135e1a 100644 --- a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/SysRoleService.java +++ b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/SysRoleService.java @@ -19,11 +19,13 @@ package com.yifu.cloud.plus.v1.yifu.admin.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysRole; +import com.yifu.cloud.plus.v1.yifu.admin.api.vo.BusinessRoleMenuVo; import com.yifu.cloud.plus.v1.yifu.admin.api.vo.RoleExcelVO; import com.yifu.cloud.plus.v1.yifu.common.core.util.R; import org.springframework.validation.BindingResult; import java.util.List; +import java.util.Set; /** * <p> @@ -72,4 +74,19 @@ public interface SysRoleService extends IService<SysRole> { * @return **/ R<Boolean> getBooleanR(SysRole sysRole); + + /** + * 获å–b角色èœå•é›†åˆ + * @param type 0 èœå• 1 按钮 null所有 + * @return + **/ + List<BusinessRoleMenuVo> getRoleAndMenu(String type); + + /** + * 获å–该用户在æ¤å®¢æˆ·ç«¯çš„所有角色id + * @param userId + * @param clientId + * @return + **/ + Set<String> getRoleByUserIdAndClient(Integer userId, String clientId); } diff --git a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/SysUserRoleService.java b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/SysUserRoleService.java index d95bd50f3..05d4317f3 100644 --- a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/SysUserRoleService.java +++ b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/SysUserRoleService.java @@ -28,5 +28,12 @@ import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUserRole; * @since 2019/2/1 */ public interface SysUserRoleService extends IService<SysUserRole> { + /** + * æ ¹æ®ç”¨æˆ·id和角色所在终端idåˆ é™¤è¿™ä¸ªç”¨æˆ·åœ¨è¿™ä¸ªç»ˆç«¯çš„æ‰€æœ‰è§’è‰² + * @param userId + * @param clientId + * @return + **/ + Boolean removeByUserAndClientId(Integer userId, String clientId); } diff --git a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/SysUserService.java b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/SysUserService.java index c7d320126..959177c13 100644 --- a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/SysUserService.java +++ b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/SysUserService.java @@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.yifu.cloud.plus.v1.yifu.admin.api.dto.UserDTO; import com.yifu.cloud.plus.v1.yifu.admin.api.dto.UserInfo; import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser; +import com.yifu.cloud.plus.v1.yifu.admin.api.vo.BusinessUserVo; import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserExcelVO; import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserPasswordVo; import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserVO; @@ -145,4 +146,15 @@ public interface SysUserService extends IService<SysUser> { */ R<Boolean> loginAuthentication(String userName, String password) throws NoSuchAlgorithmException; + Page<BusinessUserVo> getBusinessUserVoPage(Page page, BusinessUserVo user); + + /** + * 更新用户é”å®šçŠ¶æ€ + * + * @param user + * @param lockFlag + * @return + */ + Boolean updateLockFlagById(SysUser user, String lockFlag); + } diff --git a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/impl/SysRoleServiceImpl.java b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/impl/SysRoleServiceImpl.java index 1b91ee9da..6f673a478 100644 --- a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/impl/SysRoleServiceImpl.java +++ b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/impl/SysRoleServiceImpl.java @@ -27,6 +27,7 @@ import com.pig4cloud.plugin.excel.vo.ErrorMessage; import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysRole; import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysRoleMenu; import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUserRole; +import com.yifu.cloud.plus.v1.yifu.admin.api.vo.BusinessRoleMenuVo; import com.yifu.cloud.plus.v1.yifu.admin.api.vo.RoleExcelVO; import com.yifu.cloud.plus.v1.yifu.admin.mapper.SysRoleMapper; import com.yifu.cloud.plus.v1.yifu.admin.mapper.SysRoleMenuMapper; @@ -227,4 +228,14 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl wrapper.last(CommonConstants.LAST_ONE_SQL); return wrapper; } + + @Override + public List<BusinessRoleMenuVo> getRoleAndMenu(String type) { + return baseMapper.getRoleAndMenu(type); + } + + @Override + public Set<String> getRoleByUserIdAndClient(Integer userId, String clientId) { + return baseMapper.getRoleByUserIdAndClient(userId,clientId); + } } diff --git a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/impl/SysUserRoleServiceImpl.java b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/impl/SysUserRoleServiceImpl.java index 1ecca238d..15a760803 100644 --- a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/impl/SysUserRoleServiceImpl.java +++ b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/impl/SysUserRoleServiceImpl.java @@ -32,5 +32,8 @@ import org.springframework.stereotype.Service; */ @Service public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUserRole> implements SysUserRoleService { - + @Override + public Boolean removeByUserAndClientId(Integer userId, String clientId) { + return baseMapper.removeByUserAndClientId(userId,clientId); + } } diff --git a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/impl/SysUserServiceImpl.java b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/impl/SysUserServiceImpl.java index 5288c2ce7..98ddcbdd4 100644 --- a/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/impl/SysUserServiceImpl.java +++ b/yifu-upms/yifu-upms-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/admin/service/impl/SysUserServiceImpl.java @@ -30,6 +30,7 @@ import com.yifu.cloud.plus.v1.yifu.admin.api.dto.UserDTO; import com.yifu.cloud.plus.v1.yifu.admin.api.dto.UserInfo; import com.yifu.cloud.plus.v1.yifu.admin.api.entity.*; import com.yifu.cloud.plus.v1.yifu.admin.api.util.ParamResolver; +import com.yifu.cloud.plus.v1.yifu.admin.api.vo.BusinessUserVo; import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserExcelVO; import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserPasswordVo; import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserVO; @@ -38,11 +39,13 @@ import com.yifu.cloud.plus.v1.yifu.admin.service.SysMenuService; import com.yifu.cloud.plus.v1.yifu.admin.service.SysUserService; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; +import com.yifu.cloud.plus.v1.yifu.common.core.constant.ServiceNameConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.enums.MenuTypeEnum; import com.yifu.cloud.plus.v1.yifu.common.core.exception.ErrorCodes; import com.yifu.cloud.plus.v1.yifu.common.core.util.Common; import com.yifu.cloud.plus.v1.yifu.common.core.util.MsgUtils; import com.yifu.cloud.plus.v1.yifu.common.core.util.R; +import com.yifu.cloud.plus.v1.yifu.common.core.util.RedisUtil; import com.yifu.cloud.plus.v1.yifu.common.ldap.entity.PersonVo; import com.yifu.cloud.plus.v1.yifu.common.ldap.util.LdapUtil; import lombok.RequiredArgsConstructor; @@ -60,6 +63,9 @@ import java.security.NoSuchAlgorithmException; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static java.util.stream.Collectors.toList; /** * @author lengleng @@ -84,6 +90,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl private final LdapUtil ldapUtil; + private final RedisUtil redisUtil; + /** * ä¿å˜ç”¨æˆ·ä¿¡æ¯ * @param userDto DTO 对象 @@ -139,6 +147,33 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl .filter(m -> MenuTypeEnum.BUTTON.getType().equals(m.getType())).map(SysMenu::getPermission) .filter(StrUtil::isNotBlank).collect(Collectors.toSet()); userInfo.setPermissions(ArrayUtil.toArray(permissions, String.class)); + //设置角色列表 (ID) + List<SysRole> roles = sysRoleMapper.listRolesByUserId(sysUser.getUserId()); + Map<String, List<Long>> clientRoleMap = new HashMap<>(); + if (Common.isNotNull(roles)){ + roles.forEach(role -> { + + if (null != clientRoleMap.get(role.getClientId())) { + clientRoleMap.get(role.getClientId()).add(role.getRoleId()); + } else { + clientRoleMap.put(role.getClientId(), Stream.of(role.getRoleId()).collect(toList())); + } + /* List<String> permissionList = sysMenuService.findMenuByRoleId(role.getRoleId()) + .stream() + .filter(menuVo -> Common.isNotNull(menuVo.getPermission())) + .map(menuVo -> { + if (menuVo.getPermission().contains(":")) { + return menuVo.getPermission(); + } else { + return role.getClientId() + ":" + menuVo.getPermission(); + } + }) + .collect(toList()); + permissions.addAll(permissionList);*/ + } + ); + } + userInfo.setClientRoleMap(clientRoleMap); return userInfo; } @@ -551,4 +586,47 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl } return R.failed("验è¯ä¸é€šè¿‡"); } + @Override + public Page<BusinessUserVo> getBusinessUserVoPage(Page page, BusinessUserVo user) { + if (Common.isNotNull(user.getOrganIdB()) || Common.isNotNull(user.getOrganLevelB())){ + R<List<String>> userIdR = null;//remoteBusinessService.getUserIdByOrganInfo(user.getOrganIdB(), user.getOrganLevelB(), SecurityConstants.FROM_IN); + if (null != userIdR && Common.isNotNull(userIdR.getData())){ + user.setUserIdsB(userIdR.getData()); + } + } + return baseMapper.getBusinessUserVoPage(page,user); + } + /** + * 更新用户é”å®šçŠ¶æ€ + * + * @param user + * @param lockFlag + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + //ä¸ç”¨åŽŸå› user.phoneå’Œuser.wxUserIdåšé”®æ—¶å¯èƒ½ä¸ºç©º æœåŠ¡æŠ¥é”™ + public Boolean updateLockFlagById(SysUser user, String lockFlag) { + clenrUserCache(user.getUsername(),null,user.getPhone()); + SysUser sysUser = new SysUser(); + sysUser.setUserId(user.getUserId()); + sysUser.setLockFlag(lockFlag); + return this.updateById(sysUser); + } + + private void clenrUserCache(String username,String wxUserId,String phone){ + //用户å登录用户缓å˜æ¸…除 + if(Common.isNotNull(username)){ + redisUtil.remove(CacheConstants.USER_DETAILS +"::"+username); + } + //微信登录用户缓å˜æ¸…除 + if(Common.isNotNull(wxUserId)){ + redisUtil.remove(CacheConstants.USER_DETAILS + "_wx::"+wxUserId); + } + //手机å·ç™»å½•ç”¨æˆ·ç¼“å˜æ¸…除 + if(Common.isNotNull(phone)){ + redisUtil.remove(CacheConstants.USER_DETAILS + "_phone::"+phone); + } + } + } diff --git a/yifu-upms/yifu-upms-biz/src/main/resources/mapper/SysDictMapper.xml b/yifu-upms/yifu-upms-biz/src/main/resources/mapper/SysDictMapper.xml index 2b0f213d1..0fae6d510 100644 --- a/yifu-upms/yifu-upms-biz/src/main/resources/mapper/SysDictMapper.xml +++ b/yifu-upms/yifu-upms-biz/src/main/resources/mapper/SysDictMapper.xml @@ -76,7 +76,6 @@ and t.parent_id= #{parentId} and t.del_flag='0' ) </select> - <select id="getDictRedisVo" resultMap="dictRedisMap"> SELECT CONCAT(a.type,"_",a.`value`) as "key", diff --git a/yifu-upms/yifu-upms-biz/src/main/resources/mapper/SysRoleMapper.xml b/yifu-upms/yifu-upms-biz/src/main/resources/mapper/SysRoleMapper.xml index 402e3d54e..d236446c3 100644 --- a/yifu-upms/yifu-upms-biz/src/main/resources/mapper/SysRoleMapper.xml +++ b/yifu-upms/yifu-upms-biz/src/main/resources/mapper/SysRoleMapper.xml @@ -49,4 +49,28 @@ AND r.del_flag = 0 and ur.user_id = #{userId} </select> + + <select id="getRoleAndMenu" resultType="com.yifu.cloud.plus.v1.yifu.admin.api.vo.BusinessRoleMenuVo"> + SELECT + a.role_id, + a.role_name, + c.menu_id, + c.name, + c.sort + FROM + sys_role a, + sys_role_menu b + LEFT JOIN sys_menu c on b.menu_id =c.menu_id + + where a.client_id = "hrCustomer" and a.del_flag = '0' + <if test="null != type"> + and c.type = #{type} + </if> + and c.del_flag = "0" and a.role_id =b.role_id ; + </select> + <select id="getRoleByUserIdAndClient" resultType="java.lang.String"> + select a.role_id from sys_user_role a + left join sys_role b on a.role_id = b.role_id + where a.user_id = #{userId} and b.client_id = #{clientId} and b.del_flag = '0' + </select> </mapper> diff --git a/yifu-upms/yifu-upms-biz/src/main/resources/mapper/SysUserMapper.xml b/yifu-upms/yifu-upms-biz/src/main/resources/mapper/SysUserMapper.xml index 6206e7a3f..76a478bb2 100644 --- a/yifu-upms/yifu-upms-biz/src/main/resources/mapper/SysUserMapper.xml +++ b/yifu-upms/yifu-upms-biz/src/main/resources/mapper/SysUserMapper.xml @@ -295,4 +295,30 @@ username=#{i.userId} </foreach> </update> + <!-- 获å–b端用户分页 fxj 2022-12-27 --> + <select id="getBusinessUserVoPage" resultType="com.yifu.cloud.plus.v1.yifu.admin.api.vo.BusinessUserVo"> + select * + from sys_user AS `user` + <where> `user`.del_flag = '0' + <if test="query.organId != null and query.organId != ''"> + and `user`.organ_id = #{query.organId} + </if> + <if test="query.nickname != null and query.nickname != ''"> + and `user`.nickname LIKE CONCAT('%',#{query.nickname},'%') + </if> + <if test="query.username != null and query.username != ''"> + and `user`.username LIKE CONCAT('%',#{query.username},'%') + </if> + <if test="query.organCode != null and query.organCode != ''"> + and `user`.organ_code LIKE CONCAT(#{query.organCode},'%') + </if> + <if test="null != query.userIdsB and query.userIdsB.size > 0"> + where b.user_id in + <foreach collection="query.userIdsB" item="item" index="index" open="(" close=")" separator=","> + #{item} + </foreach> + </if> + </where> + ORDER BY `user`.create_time DESC + </select> </mapper> diff --git a/yifu-upms/yifu-upms-biz/src/main/resources/mapper/SysUserRoleMapper.xml b/yifu-upms/yifu-upms-biz/src/main/resources/mapper/SysUserRoleMapper.xml index 2d47137d5..df9ed4dcc 100644 --- a/yifu-upms/yifu-upms-biz/src/main/resources/mapper/SysUserRoleMapper.xml +++ b/yifu-upms/yifu-upms-biz/src/main/resources/mapper/SysUserRoleMapper.xml @@ -28,5 +28,18 @@ <delete id="deleteByUserId"> DELETE FROM sys_user_role WHERE user_id = #{userId} </delete> - + <delete id="removeByUserAndClientId"> + DELETE + FROM + sys_user_role + WHERE + user_id = #{userId} + AND role_id IN ( + SELECT + b.role_id + FROM + sys_role b + WHERE + b.client_id = #{clientId} ) + </delete> </mapper> -- 2.18.1