Przeglądaj źródła

登录信息以及人员展示信息调整

user5 2 lat temu
rodzic
commit
85f8790dee

+ 1 - 1
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/controller/LoginController.java

@@ -114,7 +114,7 @@ public class LoginController {
         List<UserDTO> loginUserList = userService.getUserIdByLoginOrMobile(username);
         if(null != loginUserList){
             if (loginUserList.size()>1){
-                throw new DisabledException ( "登录名重复,请使用手机号登录" );
+                throw new DisabledException ( "登录名存在重复,请使用手机号进行登录或联系管理员" );
             }else{
                 if(loginUserList.size()==0){
                     throw new DisabledException ( "未找到登陆人员信息" );

+ 46 - 1
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/controller/UserController.java

@@ -22,6 +22,7 @@ import com.jeeplus.core.excel.utils.EasyPoiUtil;
 import com.jeeplus.core.query.QueryWrapperGenerator;
 import com.jeeplus.security.util.SecurityUtils;
 import com.jeeplus.sys.constant.CommonConstants;
+import com.jeeplus.sys.domain.Office;
 import com.jeeplus.sys.domain.User;
 import com.jeeplus.sys.service.OfficeService;
 import com.jeeplus.sys.service.RoleService;
@@ -37,6 +38,7 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.security.core.parameters.P;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -46,6 +48,7 @@ import javax.validation.Valid;
 import javax.validation.Validator;
 import java.io.File;
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -92,6 +95,37 @@ public class UserController {
     @ApiOperation(value = "查询用户")
     public ResponseEntity queryById(@RequestParam("id") String id) {
         UserDTO userDTO = userService.get ( id );
+        //根据office.id 查询部门的所有父节点信息
+        if(null != userDTO.getOfficeDTO() && StringUtils.isNotBlank(userDTO.getOfficeDTO().getId())){
+            OfficeDTO office = officeService.getOfficeById(userDTO.getOfficeDTO().getId());
+            //将office的父节点信息进行分割并查询赋值
+            if(null != office){
+                List<String> officeIdList = Arrays.asList(office.getParentIds().split(","));
+                Integer sort = 0;
+                if(null != officeIdList && officeIdList.size()>0){
+                    for (String officeId : officeIdList) {
+                        if(StringUtils.isNotBlank(officeId) && !"0".equals(officeId)){
+                            sort ++ ;
+                            OfficeDTO officeChild = officeService.getOfficeById(officeId);
+                            if(null != officeChild) {
+                                switch (sort){
+                                    case 1:
+                                        userDTO.setCompanyDTO(officeChild);
+                                        break;
+                                    case 2:
+                                        userDTO.setCorporationDTO(officeChild);
+                                        break;
+                                    case 3:
+                                        userDTO.setOfficeDTO(officeChild);
+                                        break;
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+
+        }
         return ResponseEntity.ok ( userDTO );
     }
 
@@ -104,7 +138,7 @@ public class UserController {
      */
     @ApiLog("用户数据列表")
     @ApiOperation(value = "用户数据列表")
-    @PreAuthorize("hasAuthority('sys:user:list')")
+    //@PreAuthorize("hasAuthority('sys:user:list')")
     @GetMapping("list")
     public ResponseEntity list(UserDTO userDTO, Page <UserDTO> page) throws Exception {
         QueryWrapper <UserDTO> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( userDTO, UserDTO.class );
@@ -148,7 +182,18 @@ public class UserController {
     @ApiOperation(value = "修改个人资料")
     @PostMapping("saveInfo")
     public ResponseEntity saveInfo(@RequestBody UserDTO userDTO) {
+        //修改用户信息
+        //判断参数中手机号是否存在
+        if(StringUtils.isNotBlank(userDTO.getMobile())){
+            //如果手机号存在,则根据手机号查询除当前更改人以外是否还存在手机号重复的情况,如果存在,则不允许更改
+            List<UserDTO> userList = userService.getUserInfoByMobile(userDTO);
+            if (null != userList && userList.size()>0){
+                return ResponseEntity.badRequest ( ).body ( "修改个人资料失败! 该手机号已存在,无法修改!" );
+            }
+        }
         userService.updateById ( UserWrapper.INSTANCE.toEntity ( userDTO ) );
+
+        //更新缓存信息
         UserUtils.deleteCache ( UserUtils.getCurrentUserDTO ( ) );
         return ResponseEntity.ok ( "修改个人资料成功!" );
     }

+ 7 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/OfficeMapper.java

@@ -21,6 +21,13 @@ import java.util.List;
 public interface OfficeMapper extends TreeMapper<Office> {
 
     OfficeDTO getOfficeByName(@Param("officeName") String officeName, @Param("parentName") String parentName);
+
+    /**
+     * 根据id查询office信息
+     * @param id
+     * @return
+     */
+    OfficeDTO getOfficeById(String id);
     /**
      * 根据部门名称 查询部门及所有子部门信息
      * @param officeName

+ 8 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/UserMapper.java

@@ -140,4 +140,12 @@ public interface UserMapper extends BaseMapper<User> {
      */
     List<UserDTO> getUserIdByLoginOrMobile(String userName);
 
+    /**
+     * 根据用户手机号和当前人id查询非当前登录人的信息
+     *
+     * @param userDTO
+     * @return
+     */
+    List <UserDTO> getUserInfoByMobile(UserDTO userDTO);
+
 }

+ 11 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/OfficeMapper.xml

@@ -79,4 +79,15 @@
 		WHERE a.parameter_id=(select s.id from sys_parameter s where s.parameter=#{parameter})
 	    and a.falt = '1' and del_flag = '0'
 	</select>
+
+
+    <select id="getOfficeById" resultType="com.jeeplus.sys.service.dto.OfficeDTO">
+        select
+        <include refid="officeColumns"/>
+        from sys_office a
+        <where>
+            a.id = #{id}
+            and a.del_flag = 0
+        </where>
+    </select>
 </mapper>

+ 13 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml

@@ -245,4 +245,17 @@
 		</where>
 	</select>
 
+
+	<select id="getUserInfoByMobile" resultType="com.jeeplus.sys.service.dto.UserDTO">
+		SELECT
+		<include refid="userOfficeColumns"/>
+		FROM sys_user a
+		<include refid="userJoins"/>
+		<where>
+			a.del_flag = 0
+			and a.mobile = #{mobile}
+			and a.id != #{id}
+		</where>
+	</select>
+
 </mapper>

+ 4 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/OfficeService.java

@@ -225,4 +225,8 @@ public class OfficeService extends TreeService<OfficeMapper, Office> {
         root.setChildren (trees);
         return Lists.newArrayList (root);
     }
+
+    public OfficeDTO getOfficeById(String id){
+        return officeMapper.getOfficeById(id);
+    }
 }

+ 9 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/UserService.java

@@ -373,4 +373,13 @@ public class UserService  extends ServiceImpl<UserMapper, User> {
 		officeIds.add(officeId);
 		return userMapper.selectList(new QueryWrapper<User>().lambda().in(User::getOfficeId,officeIds));
 	}
+
+
+	/**
+	 * 根据用户手机号和当前人id查询非当前登录人的信息
+	 * @param userDTO
+	 */
+	public List<UserDTO> getUserInfoByMobile(UserDTO userDTO) {
+		return userMapper.getUserInfoByMobile(userDTO);
+	}
 }

+ 2 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/dto/UserDTO.java

@@ -275,4 +275,6 @@ public class  UserDTO extends BaseDTO {
     private String loginLocation;   //登录地点
     private String token;   //人员token
 
+    private OfficeDTO corporationDTO;   //公司信息
+
 }