Commit ee025262 authored by hongguangwu's avatar hongguangwu

MVP1.7.15-税友户配置拦截权限1

parent 43d23215
package com.yifu.cloud.plus.v1.yifu.common.dapr.util;
import com.alibaba.fastjson.JSON;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
......@@ -183,4 +182,17 @@ public class UpmsDaprUtils {
}
return relDictMapR;
}
/**
* @param paramVo 用户IDList + 菜单Id
* @Description: 判断用户是否有菜单
* @Author: hgw
* @Date: 2025/9/4 16:09
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.admin.api.vo.AreaVo>
**/
public R<KeyValueReturnVo> judgeMenuByUserIdAndMenuId(ListAndStringVo paramVo) {
return HttpDaprUtil.invokeMethodPost(daprUpmsProperties.getAppUrl(),daprUpmsProperties.getAppId()
,"/user/inner/judgeDispatchAudit", paramVo, KeyValueReturnVo.class, SecurityConstants.FROM_IN);
}
}
......@@ -32,6 +32,8 @@ import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysArea;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.AllUserNaVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.AreaVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.KeyValueReturnVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.ListAndStringVo;
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.SecurityConstants;
......@@ -136,6 +138,13 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
if (Common.isEmpty(sysHouseHoldInfo.getAuditUser()) || Common.isEmpty(sysHouseHoldInfo.getHandleUser())) {
return R.failed("审核人或办理人必填!");
}
// 判断审核人与办理人的权限:
String judgeAuth = this.judgeAuditAndHandleAuth(sysHouseHoldInfo.getType()
, sysHouseHoldInfo.getAuditUser(), sysHouseHoldInfo.getAuditUserName()
, sysHouseHoldInfo.getHandleUser(), sysHouseHoldInfo.getHandleUserName());
if (Common.isNotNull(judgeAuth)) {
return R.failed(judgeAuth);
}
//获取行政区化代码
if (CommonConstants.ZERO_STRING.equals(sysHouseHoldInfo.getType())) {
HashMap<String, SysArea> map = initAreaMap();
......@@ -159,6 +168,89 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
return R.ok();
}
/**
* @param type 账户性质:0社保 1公积金
* @param auditUser 审核人ID
* @param handleUser 办理人ID
* @Description: 判断审核人与办理人的菜单权限是否已配置
* @Author: hgw
* @Date: 2025/9/4 16:03
* @return: java.lang.String
**/
private String judgeAuditAndHandleAuth(String type, String auditUser, String auditUserName, String handleUser, String handleUserName) {
List<String> userIdList = new ArrayList<>();
userIdList.add(auditUser);
String returnStr = "";
String valueStr;
String typeName = "社保";
if (CommonConstants.ONE_STRING.equals(type)) {
typeName = "公积金";
}
String auditNo = "审核人("+auditUserName+")账号没有派单审核角色,不能授权为审核人,";
String handleNo = "办理人("+auditUserName+")账号没有"+typeName+"的办理角色,不能授权为办理人,";
// 1:角色菜单
// 派单审核
String menuId = "1549677464986763265";
ListAndStringVo paramVo = new ListAndStringVo();
paramVo.setIdList(userIdList);
paramVo.setIdString(menuId);
R<KeyValueReturnVo> returnVoR = upmsDaprUtils.judgeMenuByUserIdAndMenuId(paramVo);
if (returnVoR != null && returnVoR.getData() != null && returnVoR.getData().getKeyValueMap() != null && !returnVoR.getData().getKeyValueMap().isEmpty()) {
valueStr = returnVoR.getData().getKeyValueMap().get(auditUser);
if (Common.isEmpty(valueStr) || CommonConstants.ZERO_STRING.equals(valueStr)) {
returnStr = auditNo;
}
} else {
returnStr = auditNo;
}
// 社保、公积金办理,换成用办理人查询:
userIdList = new ArrayList<>();
userIdList.add(handleUser);
// 社保办理
if (CommonConstants.ZERO_STRING.equals(type)) {
menuId = "1549678343483736066";
paramVo = new ListAndStringVo();
paramVo.setIdList(userIdList);
paramVo.setIdString(menuId);
returnVoR = upmsDaprUtils.judgeMenuByUserIdAndMenuId(paramVo);
if (returnVoR != null && returnVoR.getData() != null && returnVoR.getData().getKeyValueMap() != null && !returnVoR.getData().getKeyValueMap().isEmpty()) {
valueStr = returnVoR.getData().getKeyValueMap().get(handleUser);
if (Common.isEmpty(valueStr) || CommonConstants.ZERO_STRING.equals(valueStr)) {
returnStr += handleNo;
}
} else {
returnStr += handleNo;
}
}
// 公积金办理
if (CommonConstants.ZERO_STRING.equals(type)) {
menuId = "1549678424018567170";
paramVo = new ListAndStringVo();
paramVo.setIdList(userIdList);
paramVo.setIdString(menuId);
returnVoR = upmsDaprUtils.judgeMenuByUserIdAndMenuId(paramVo);
if (returnVoR != null && returnVoR.getData() != null && returnVoR.getData().getKeyValueMap() != null && !returnVoR.getData().getKeyValueMap().isEmpty()) {
valueStr = returnVoR.getData().getKeyValueMap().get(handleUser);
if (Common.isEmpty(valueStr) || CommonConstants.ZERO_STRING.equals(valueStr)) {
returnStr += handleNo;
}
} else {
returnStr += handleNo;
}
}
// TODO-2:数据权限菜单:
if (Common.isNotNull(returnStr)) {
returnStr += "请找管理员协助补足权限后重新授权。";
}
return returnStr;
}
/**
* 查询
* @param id
......
package com.yifu.cloud.plus.v1.yifu.admin.api.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
/**
* @Author hgw
* @Date 2025-9-6
* @Description 通用Vo
* @Version 1.0
*/
@Data
public class KeyValueReturnVo implements Serializable {
private Map<String, String> keyValueMap;
}
package com.yifu.cloud.plus.v1.yifu.admin.api.vo;
import lombok.Data;
import java.io.Serializable;
/**
* @Author hgw
* @Date 2025-9-6
* @Description 通用Vo
* @Version 1.0
*/
@Data
public class KeyValueVo implements Serializable {
private String keyStr;
private String valueStr;
}
package com.yifu.cloud.plus.v1.yifu.admin.api.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Author hgw
* @Date 2025-9-6
* @Description 通用Vo
* @Version 1.0
*/
@Data
public class ListAndStringVo implements Serializable {
private List<String> idList;
private String idString;
}
......@@ -17,7 +17,6 @@
package com.yifu.cloud.plus.v1.yifu.admin.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -770,4 +769,17 @@ public class UserController {
return naVo;
}
/**
* @Author huych
* @Description 根据项目id和用户id查询csp部门信息
* @Date 14:27 2025/3/10
* @Param
* @return
**/
@Inner
@PostMapping("/inner/judgeDispatchAudit")
public KeyValueReturnVo judgeDispatchAudit(@RequestBody ListAndStringVo paramVo) {
return userService.judgeDispatchAudit(paramVo);
}
}
......@@ -22,6 +22,7 @@ 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.KeyValueVo;
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;
......@@ -107,4 +108,7 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
List<String> getCspUserByDeptId(@Param("deptId")String deptId);
List<String> getCspUserByProjectNo(@Param("projectNo")String projectNo);
// 判断用户是否有菜单
List<KeyValueVo> judgeMenuByUserId(@Param("idList") List<String> idList, @Param("menuId") String menuId);
}
......@@ -214,4 +214,6 @@ public interface SysUserService extends IService<SysUser> {
R<IPage<SysUser>> cspUserPage(Page page, String deptId, String userName, String nickName);
SysCspDeptVo selectCspDeptByUserDeptId(SysCspDeptVo vo);
KeyValueReturnVo judgeDispatchAudit(ListAndStringVo paramVo);
}
......@@ -1024,4 +1024,25 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return vo;
}
@Override
public KeyValueReturnVo judgeDispatchAudit(ListAndStringVo paramVo) {
List<String> idList = paramVo.getIdList();
// 派单审核 menuId = "1549677464986763265"
String menuId = paramVo.getIdString();
KeyValueReturnVo vo = new KeyValueReturnVo();
if (idList == null || idList.isEmpty() || Common.isEmpty(menuId)) {
return vo;
}
List<KeyValueVo> voList = baseMapper.judgeMenuByUserId(idList, menuId);
if (voList != null && !voList.isEmpty()) {
Map<String, String> map = new HashMap<>();
for (KeyValueVo keyValueVo : voList) {
map.put(keyValueVo.getKeyStr(), keyValueVo.getValueStr());
}
vo.setKeyValueMap( map);
}
return vo;
}
}
......@@ -414,4 +414,21 @@
where c.project_no in (#{projectNo})
) and a.del_flag='0'
</select>
<!-- 判断用户是否有菜单 -->
<select id="judgeMenuByUserId" resultType="com.yifu.cloud.plus.v1.yifu.admin.api.vo.KeyValueVo">
select u.user_id keyStr,count(1) valueStr
from sys_user u
LEFT JOIN sys_user_role ur on u.user_id=ur.user_id
LEFT JOIN sys_role r on r.role_id=ur.role_id
LEFT JOIN sys_role_menu rm on rm.role_id=ur.role_id
LEFT JOIN sys_menu m on m.menu_id=rm.menu_id
where a.user_id in
<foreach collection="idList" item="ids" open="(" separator="," close=")">
#{ids}
</foreach>
and rm.menu_id = #{menuId}
and u.del_flag ='0' and r.del_flag='0' and m.del_flag='0'
GROUP BY u.user_id
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment