Commit 33041465 authored by fangxinjiang's avatar fangxinjiang

服务平台机构移动-fxj

parent a464d907
package com.yifu.cloud.plus.v1.yifu.admin.api.vo;
import lombok.Data;
import javax.sql.rowset.serial.SerialArray;
import java.io.Serializable;
/**
* @Author fxj
* @Date 2025/2/26
* @Description 部门排序树
* @Version 1.0
*/
@Data
public class DeptSortVo implements Serializable {
/**
* @Author fxj
* @Description 部门ID
* @Date 17:27 2025/2/26
**/
private String id;
/**
* @Author fxj
* @Description 部门排序
* @Date 17:27 2025/2/26
**/
private String sort;
}
package com.yifu.cloud.plus.v1.yifu.admin.api.vo;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysDept;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 客户服务平台——部门包装类
*
* @author chenyuxi
* @since 1.9.7
*/
@Data
public class SysDeptMoveVo implements Serializable {
/**
* @Author fxj
* @Description 部门ID
* @Date 17:29 2025/2/26
**/
private String sysDeptId;
/**
* @Author fxj
* @Description 部门父级ID
* @Date 17:29 2025/2/26
**/
private String parentId;
/**
* @Author fxj
* @Description 部门排序信息
* @Date 17:29 2025/2/26
**/
private List<DeptSortVo> deptSortList;
}
......@@ -74,7 +74,7 @@ public class UserCspVO extends SysUser implements Serializable {
@Schema(description = "关联项目名称")
private String projectName;
@Schema(description = "归属系统 0 mvp 1 甲方客户端")
@Schema(description = "归属系统 0 yifu-mvp 1 yifu-csp")
private String client;
@NotBlank(message = "账号类型 不能为空")
......
package com.yifu.cloud.plus.v1.yifu.admin.constants;
/**
* @Author fxj
* @Description 客户服务平台相关常量
* @Date 16:45 2025/2/26
* @Param
* @return
**/
public class UserDeptPermConstants {
// 社保补缴配置有误!
public static final String PERMISSION_SAVE_ERROR = "客户服务平台用户更新异常!";
public static final String ADMIN_DISABLE_ERROR = "管理员账号禁止收回,如需操作请先修改用户为普通用户!";
public static final String USER_EXITS_ERROR = "已存在对应用户数据,请勿重复配置!";
public static final String CUSTOMER_SERVICE_PLATFORM = "客户服务平台用户";
public static final String DEFAULT_PASSWORD = "123456";
public static final String ERROR_TEMPLATE = "模板中已存在对应员工";
public static final String YL = "养老";
public static final String DB = "大病";
public static final String SY = "失业";
public static final String BIR = "生育";
public static final String GS = "工伤";
public static final String YB = "医保";
public static final String BJ = "补缴";
public static final String YEAR_1970 = "1970-02";
public static final String NOT_EXIT_SETTLEiNFO = "未找到该人员对应的项目信息,请核实";
public static final String ERROR_PRI = "该人员归属的";
public static final String ERROR_END = "信息缺失,将导致后续无法结算,请联系卢名旭处理";
}
......@@ -19,8 +19,10 @@ import cn.hutool.core.lang.tree.Tree;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysDept;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.DeptTreeSelectVO;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysDeptMoveVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysDeptVo;
import com.yifu.cloud.plus.v1.yifu.admin.service.SysDeptService;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
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.log.annotation.SysLog;
......@@ -247,5 +249,13 @@ public class DeptController {
return R.ok(sysDeptService.cspDeptCount(dept.getProjectNo()));
}
/**
* @Author fxj
* @Description 获取
* @Date 17:27 2025/2/26
**/
@PostMapping(value = "/cspUpdateDept")
public R<Boolean> cspUpdateDept(SysDeptMoveVo dept) {
return sysDeptService.cspUpdateDept(dept);
}
}
......@@ -73,24 +73,12 @@ public class SysUserDeptPermissionController {
@SysLog("新增用户")
@PostMapping("add")
public R<Boolean> save(@Valid @RequestBody UserCspVO entity) {
long check = sysUserDeptPermissionService.count(Wrappers.<SysUserDeptPermission>query().lambda()
.eq(SysUserDeptPermission::getProjectNo,entity.getProjectNo())
.eq(SysUserDeptPermission::getUserId,entity.getUserId()));
if ( check > CommonConstants.ZERO_INT) {
return R.failed("已存在对应账户数据,请勿重复配置!");
}
long count = sysUserService.count(Wrappers.<SysUser>query().lambda()
.eq(SysUser::getUsername,entity.getUsername())
.eq(SysUser::getDelFlag, CommonConstants.ZERO_STRING));
if ( count > CommonConstants.ZERO_INT) {
return R.failed("已存在对应用户数据,请勿重复配置!");
}
return sysUserDeptPermissionService.saveAsso(entity);
}
/**
* 收回用户
* @param entity 角色信息
* 修改用户
* @param entity 修改用户
* @return success/false
*/
@SysLog("修改用户")
......@@ -104,10 +92,11 @@ public class SysUserDeptPermissionController {
* @param userId
* @return
*/
@SysLog("删除角色")
@DeleteMapping("/{userId}")
public R<Boolean> removeById(@PathVariable int userId) {
return sysUserDeptPermissionService.removeUserDeptPermissionById(userId);
@SysLog("收回用户")
@DeleteMapping("/disable")
public R<Boolean> removeById(@RequestParam(required = true,value = "userId") String userId,
@RequestParam(required = true,value = "projectNo") String projectNo) {
return sysUserDeptPermissionService.removeUserDeptPermissionById(userId,projectNo);
}
}
......@@ -638,4 +638,19 @@ public class UserController {
public R<IPage<SysUser>> getAllUserPage(Page page, UserDTO userDTO) {
return R.ok(userService.getAllUserPage(page, userDTO));
}
/**
* @Author fxj
* @Description 按项目对应部门查询客户服务平台的用户信息
* @Date 14:27 2025/2/26
* @Param
* @return
**/
@GetMapping("/cspUserPage")
public R<IPage<SysUser>> cspUserPage(Page page, @RequestParam(required = true,value = "deptId") String deptId,
@RequestParam(required = false,value = "userName") String userName,
@RequestParam(required = false,value = "nickName") String nickName) {
return userService.cspUserPage(page, deptId,userName,nickName);
}
}
......@@ -18,6 +18,7 @@ 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.SysDept;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.DeptSortVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysDeptVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -87,4 +88,5 @@ public interface SysDeptMapper extends BaseMapper<SysDept> {
int cspDeptCount(@Param("projectNo") String projectNo);
void batchUpdateSort(@Param("moveVos")List<DeptSortVo> moveVos);
}
......@@ -99,4 +99,6 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
* @return list
*/
IPage<SysUser> getAllUserPageWhere(Page page, @Param("query") UserDTO userDTO);
IPage<SysUser> cspUserPage(Page page, @Param("deptId")String deptId, @Param("userName")String userName, @Param("nickName")String nickName);
}
......@@ -20,6 +20,7 @@ import cn.hutool.core.lang.tree.Tree;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysDept;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.DeptTreeSelectVO;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysDeptMoveVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysDeptVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
......@@ -130,4 +131,7 @@ public interface SysDeptService extends IService<SysDept> {
* @return R<Integer> 部门总数
*/
Integer cspDeptCount(String projectNo);
R<Boolean> cspUpdateDept(SysDeptMoveVo dept);
}
......@@ -81,5 +81,5 @@ public interface SysUserDeptPermissionService extends IService<SysUserDeptPermis
R<Boolean> updateByIdAsso(UserCspVO entity);
R<Boolean> removeUserDeptPermissionById(int userId);
R<Boolean> removeUserDeptPermissionById(String userId, String projectNo);
}
......@@ -205,4 +205,5 @@ public interface SysUserService extends IService<SysUser> {
IPage<SysUser> getAllUserPage(Page page, UserDTO userDTO);
R<IPage<SysUser>> cspUserPage(Page page, String deptId, String userName, String nickName);
}
......@@ -28,7 +28,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.unboundid.ldap.sdk.SearchResultEntry;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysDept;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysDeptRelation;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.DeptSortVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.DeptTreeSelectVO;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysDeptMoveVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysDeptVo;
import com.yifu.cloud.plus.v1.yifu.admin.mapper.SysDeptMapper;
import com.yifu.cloud.plus.v1.yifu.admin.mapper.SysUserMapper;
......@@ -510,4 +512,40 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
public Integer cspDeptCount(String projectNo) {
return baseMapper.cspDeptCount(projectNo);
}
/**
* @Author fxj
* @Description 按项目对应部门查询客户服务平台的用户信息
* @Date 14:27 2025/2/26
* @Param
* @return
**/
@Override
public R<Boolean> cspUpdateDept(SysDeptMoveVo dept) {
try {
if(Common.isEmpty(dept)
|| Common.isEmpty(dept.getSysDeptId())
|| Common.isEmpty(dept.getParentId())
|| Common.isEmpty(dept.getDeptSortList())){
R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
SysDept parentDept = baseMapper.selectById(dept.getParentId());
if (Common.isEmpty(parentDept)){
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
SysDept updateEntity = baseMapper.selectById(dept.getSysDeptId());
if (Common.isEmpty(updateEntity)){
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
updateEntity.setParentId(parentDept.getDeptId());
updateEntity.setAncestors(parentDept.getAncestors());
baseMapper.updateById(updateEntity);
List<DeptSortVo> moveVos = dept.getDeptSortList();
baseMapper.batchUpdateSort(moveVos);
}catch (Exception e){
log.error("客户服务平台机构变更异常",e);
return R.failed(CommonConstants.UPDATE_DATA_FAIL);
}
return R.ok();
}
}
......@@ -16,14 +16,15 @@
package com.yifu.cloud.plus.v1.yifu.admin.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysDept;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUserDeptPermission;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserCspVO;
import com.yifu.cloud.plus.v1.yifu.admin.constants.UserDeptPermConstants;
import com.yifu.cloud.plus.v1.yifu.admin.mapper.SysDeptMapper;
import com.yifu.cloud.plus.v1.yifu.admin.mapper.SysUserDeptPermissionMapper;
import com.yifu.cloud.plus.v1.yifu.admin.mapper.SysUserMapper;
......@@ -297,6 +298,11 @@ public class SysUserDeptPermissionServiceImpl extends ServiceImpl<SysUserDeptPer
return R.ok("用户绑定项目成功");
}
/**
* @Author fxj
* @Description 既有接口‘通过用户ID获取用户的权限相关信息返回数组’
* @Date 11:26 2025/2/26
**/
@Override
public List<UserPermissionVo> getUserPermission(String userId) {
UserPermissionVo authority;
......@@ -409,8 +415,19 @@ public class SysUserDeptPermissionServiceImpl extends ServiceImpl<SysUserDeptPer
return permissionMapByProject;
}
/**
* @Author fxj
* @Description 新增客户服务平台用户 及 用户权限关系表
* @Date 11:24 2025/2/26
**/
@Override
public R<Boolean> saveAsso(UserCspVO entity) {
long count = sysUserMapper.selectCount(Wrappers.<SysUser>query().lambda()
.eq(SysUser::getUsername,entity.getUsername())
.eq(SysUser::getDelFlag, CommonConstants.ZERO_STRING));
if ( count > CommonConstants.ZERO_INT) {
return R.failed(UserDeptPermConstants.USER_EXITS_ERROR);
}
SysUser user = new SysUser();
user.setUserGroup("0");
user.setDeptId(entity.getDeptId());
......@@ -423,9 +440,9 @@ public class SysUserDeptPermissionServiceImpl extends ServiceImpl<SysUserDeptPer
user.setPhone(entity.getPhone());
user.setLockFlag(CommonConstants.STATUS_NORMAL);
if (Common.isNotNull(user.getPassword())){
user.setPassword(ENCODER.encode("123456"));
user.setPassword(ENCODER.encode(UserDeptPermConstants.DEFAULT_PASSWORD));
}
user.setPost("客户服务平台用户");
user.setPost(UserDeptPermConstants.CUSTOMER_SERVICE_PLATFORM);
user.setLockFlag(CommonConstants.STATUS_NORMAL);
user.setDelFlag(CommonConstants.STATUS_NORMAL);
user.setCreateTime(LocalDateTime.now());
......@@ -445,16 +462,60 @@ public class SysUserDeptPermissionServiceImpl extends ServiceImpl<SysUserDeptPer
}
return R.failed(Boolean.FALSE,CommonConstants.SAVE_FAILED);
}
/**
* @Author fxj
* @Description 更新客服服务平台用户信息
* @Date 11:26 2025/2/26
**/
@Override
public R<Boolean> updateByIdAsso(UserCspVO entity) {
return null;
try {
if (Common.isEmpty(entity) || Common.isEmpty(entity.getUserId())){
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
SysUser user = sysUserMapper.selectById(entity.getUserId());
if (Common.isEmpty(user)){
return R.failed(CommonConstants.NO_DATA_TO_HANDLE);
}
SysUserDeptPermission permission = baseMapper.selectOne(Wrappers.<SysUserDeptPermission>query().lambda()
.eq(SysUserDeptPermission::getUserId,user.getUserId())
.eq(SysUserDeptPermission::getProjectNo,entity.getProjectNo()).last(CommonConstants.LAST_ONE_SQL));
if (Common.isEmpty(permission)){
return R.failed(CommonConstants.NO_DATA_TO_HANDLE);
}
user.setNickname(entity.getNickname());
user.setPhone(entity.getPhone());
user.setDeptName(entity.getDeptName());
user.setDeptId(entity.getDeptId());
LambdaUpdateWrapper<SysUser> updateWrappers = new LambdaUpdateWrapper<>();
updateWrappers.set(SysUser::getUserId,user.getUserId());
sysUserMapper.update(entity,updateWrappers);
permission.setDeptId(entity.getDeptId());
permission.setUserType(entity.getUserType());
baseMapper.updateById(permission);
}catch (Exception e){
log.error(UserDeptPermConstants.PERMISSION_SAVE_ERROR,e);
return R.failed(UserDeptPermConstants.PERMISSION_SAVE_ERROR);
}
return R.ok(null,CommonConstants.SAVE_SUCCESS);
}
/**
* @Author fxj
* @Description 收回账号
* @Date 11:24 2025/2/26
* @Param
* @return
**/
@Override
public R<Boolean> removeUserDeptPermissionById(int userId) {
int res = baseMapper.delete(Wrappers.<SysUserDeptPermission>query().lambda().eq(SysUserDeptPermission::getUserId,userId));
if (res > CommonConstants.ZERO_INT){
public R<Boolean> removeUserDeptPermissionById(String userId, String projectNo) {
SysUserDeptPermission permission = baseMapper.selectOne(Wrappers.<SysUserDeptPermission>query().lambda()
.eq(SysUserDeptPermission::getUserId,userId)
.eq(SysUserDeptPermission::getProjectNo,projectNo)
.last(CommonConstants.LAST_ONE_SQL));
if (Common.isNotNull(permission) && CommonConstants.ZERO_STRING.equals(permission.getUserType())){
return R.failed(UserDeptPermConstants.ADMIN_DISABLE_ERROR);
}
if (baseMapper.deleteById(permission.getId()) > CommonConstants.ZERO_INT){
return R.ok(Boolean.TRUE,CommonConstants.RESULT_DATA_SUCESS);
}
return R.failed(Boolean.FALSE,CommonConstants.RESULT_DATA_FAIL);
......
......@@ -985,4 +985,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return baseMapper.getAllUserPageWhere(page, userDTO);
}
@Override
public R<IPage<SysUser>> cspUserPage(Page page, String deptId, String userName, String nickName) {
if (Common.isEmpty(deptId)){
return R.failed(null,CommonConstants.PARAM_IS_NOT_ERROR);
}
return R.ok(baseMapper.cspUserPage(page,deptId,userName,nickName));
}
}
......@@ -121,4 +121,21 @@
</trim>
WHERE dept_id=#{dept.deptId}
</update>
<update id="batchUpdateSort">
UPDATE sys_dept
<trim prefix="SET" suffixOverrides=",">
<trim prefix="sort_order = CASE" suffix="END,">
<foreach collection="moveVos" item="m">
WHEN dept_id = #{m.id} THEN #{m.sort}
</foreach>
</trim>
</trim>
WHERE dept_id IN
<foreach collection="moveVos" item="m" open="(" separator="," close=")">
#{m.id}
</foreach>
</update>
</mapper>
......@@ -411,4 +411,23 @@
) u
ORDER BY u.create_time DESC
</select>
<select id="cspUserPage" resultType="com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser">
select u.user_id,u.nickname,u.phone,u.create_time,u.username from sys_user u
LEFT JOIN sys_user_dept_permission p on u.user_id=p.user_id
where
1=1
<if test="nickName != null and nickName != ''">
and u.nickname LIKE CONCAT('%',#{nickName},'%')
</if>
<if test="userName != null and username != ''">
and u.username LIKE CONCAT('%',#{userName,'%')
</if>
<if test="null != deptId and deptId != ''">
p.dept_id in (
select d.dept_id from sys_dept d where d.ancestors like CONCAT("0","%",#{deptId},"%")
)
</if>
ORDER BY u.create_time DESC
</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