Browse Source

用户修改

车车 4 months ago
parent
commit
117c3b3d4a

+ 16 - 1
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java

@@ -11,9 +11,12 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
 import cn.iocoder.yudao.module.system.convert.user.UserConvert;
 import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.userworkstation.UserWorkstationDO;
 import cn.iocoder.yudao.module.system.enums.common.SexEnum;
 import cn.iocoder.yudao.module.system.service.dept.DeptService;
 import cn.iocoder.yudao.module.system.service.user.AdminUserService;
+import cn.iocoder.yudao.module.system.service.userworkstation.UserWorkstationService;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Parameters;
@@ -30,6 +33,8 @@ import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@@ -45,6 +50,8 @@ public class UserController {
     private AdminUserService userService;
     @Resource
     private DeptService deptService;
+    @Resource
+    private UserWorkstationService userWorkstationService;
 
     @PostMapping("/create")
     @Operation(summary = "新增用户")
@@ -127,7 +134,15 @@ public class UserController {
         }
         // 拼接数据
         DeptDO dept = deptService.getDept(user.getDeptId());
-        return success(UserConvert.INSTANCE.convert(user, dept));
+        UserRespVO convert = UserConvert.INSTANCE.convert(user, dept);
+        // 获取mars岗位信息
+        List<UserWorkstationDO> list = userWorkstationService.list(Wrappers.<UserWorkstationDO>lambdaQuery()
+                .eq(UserWorkstationDO::getUserId, id));
+        if (!list.isEmpty()) {
+            Set<Long> workstationIds = list.stream().map(UserWorkstationDO::getWorkstationId).collect(Collectors.toSet());
+            convert.setWorkstationIds(workstationIds);
+        }
+        return success(convert);
     }
 
     @GetMapping("/export")

+ 3 - 0
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.java

@@ -72,4 +72,7 @@ public class UserRespVO{
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式")
     private LocalDateTime createTime;
 
+    @Schema(description = "岗位编号数组", example = "1")
+    private Set<Long> workstationIds;
+
 }

+ 9 - 0
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/userworkstation/UserWorkstationMapper.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.mysql.userworkstation;
 
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.module.system.dal.dataobject.userworkstation.UserWorkstationDO;
+import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -12,4 +13,12 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface UserWorkstationMapper extends BaseMapperX<UserWorkstationDO> {
 
+    @Delete({
+            "<script>",
+            "DELETE FROM isc_user_workstation",
+            "WHERE user_id = #{id}",
+            "</script>"
+    })
+    Boolean physicalDeleteByUserId(Long id);
+
 }

+ 6 - 1
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java

@@ -176,7 +176,12 @@ public class AdminUserServiceImpl implements AdminUserService {
         userMapper.updateById(updateObj);
         // 2.2 更新岗位
         updateUserPost(updateReqVO, updateObj);
-
+        // 2.3更新mars岗位
+        userWorkstationService.physicalDeleteByUserId(updateReqVO.getId());
+        if (CollectionUtil.isNotEmpty(updateReqVO.getWorkstationIds())) {
+            userWorkstationService.saveBatch(convertList(updateReqVO.getWorkstationIds(),
+                    workstationId -> new UserWorkstationDO().setUserId(updateReqVO.getId()).setWorkstationId(workstationId)));
+        }
         // 3. 记录操作日志上下文
         LogRecordContext.putVariable(DiffParseFunction.OLD_OBJECT, BeanUtils.toBean(oldUser, UserSaveReqVO.class));
         LogRecordContext.putVariable("user", oldUser);

+ 1 - 0
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/userworkstation/UserWorkstationService.java

@@ -12,5 +12,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
 public interface UserWorkstationService extends IService<UserWorkstationDO> {
 
 
+    Boolean physicalDeleteByUserId(Long id);
 
 }

+ 8 - 0
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/userworkstation/UserWorkstationServiceImpl.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.service.userworkstation;
 import cn.iocoder.yudao.module.system.dal.dataobject.userworkstation.UserWorkstationDO;
 import cn.iocoder.yudao.module.system.dal.mysql.userworkstation.UserWorkstationMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
@@ -15,4 +16,11 @@ import org.springframework.validation.annotation.Validated;
 @Validated
 public class UserWorkstationServiceImpl extends ServiceImpl<UserWorkstationMapper, UserWorkstationDO> implements UserWorkstationService {
 
+    @Resource
+    private UserWorkstationMapper userWorkstationMapper;
+
+    @Override
+    public Boolean physicalDeleteByUserId(Long id) {
+        return userWorkstationMapper.physicalDeleteByUserId(id);
+    }
 }