| 
					
				 | 
			
			
				@@ -1,5 +1,10 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.yonge.cooleshow.auth.web.controller; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.auth.api.dto.RealnameAuthReq; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.auth.api.dto.UpdatePasswordDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.toolset.thirdparty.user.realname.RealnameAuthenticationPlugin; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.toolset.utils.idcard.IdcardInfoExtractor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.toolset.utils.idcard.IdcardValidator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import io.swagger.annotations.Api; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import io.swagger.annotations.ApiImplicitParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import io.swagger.annotations.ApiImplicitParams; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -8,17 +13,14 @@ import io.swagger.annotations.ApiOperation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.ibatis.annotations.Param; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.http.HttpStatus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.http.MediaType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.security.access.prepost.PreAuthorize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.web.bind.annotation.GetMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.web.bind.annotation.PathVariable; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.web.bind.annotation.PostMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.web.bind.annotation.RequestBody; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.web.bind.annotation.RequestMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.web.bind.annotation.RestController; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.auth.api.entity.SysUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.auth.service.SysRoleService; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -35,233 +37,257 @@ import com.yonge.cooleshow.common.security.SecurityUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.common.service.IdGeneratorService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.toolset.utils.date.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.validation.Valid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @RestController() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @RequestMapping("user") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Api(tags = "会员服务") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class UserController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	private SysUserService sysUserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	private SysRoleService sysRoleService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	/*@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	private ImFeignService imFeignService;*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	private SysUserRoleService sysUserRoleService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	private IdGeneratorService smsCodeService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@Value("${message.debugMode}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	private boolean debugMode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiOperation(value = "分页查询用户信息") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiImplicitParams({ @ApiImplicitParam(name = "userType", value = "用户类型", required = false, dataType = "String"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			@ApiImplicitParam(name = "createStartDate", value = "开始注册时间", required = true, dataType = "String"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			@ApiImplicitParam(name = "createEndDate", value = "结束注册时间", required = true, dataType = "String") }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@GetMapping(value = "/queryPage") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@PreAuthorize("@pcs.hasPermissions('user/queryPage')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public Object queryPage(SysUserQueryInfo queryInfo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return succeed(sysUserService.queryPage(queryInfo)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiOperation(value = "查询用户信息接口") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@GetMapping("/query") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@PreAuthorize("@pcs.hasPermissions('user/query')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public Object query() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		AuthUser user = SecurityUtils.getUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (user != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return succeed(sysUserService.get(user.getUserId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return failed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiOperation(value = "根据用户编号获取用户基本信息") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@GetMapping("/getBasic") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public Object getBasic(Long userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (userId == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed("参数校验异常"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return succeed(sysUserService.getBasic(userId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@GetMapping(value = "/findByPhone") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public Object findByPhone(String mobile) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return succeed(sysUserService.queryByPhone(mobile)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@GetMapping(value = "/queryUserByPhone") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public SysUser queryUserByPhone(String mobile) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return sysUserService.queryByPhone(mobile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@GetMapping(value = "/noAuth/queryUserByPhone") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public Object noAuthQueryUserByPhone(String mobile) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		SysUser sysUser = sysUserService.queryByPhone(mobile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if(sysUser == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return succeed(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return succeed(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@GetMapping(value = "/queryUserById/{userId}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public SysUser queryUserById(@PathVariable("userId") Long userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return sysUserService.get(userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@PostMapping(value = "/updateSysUser", consumes = MediaType.APPLICATION_JSON_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public boolean updateSysUser(@RequestBody SysUser user) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		user.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sysUserService.update(user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiOperation(value = "新增用户") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@PostMapping(value = "/add", consumes = MediaType.APPLICATION_JSON_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public HttpResponseResult<Long> add(@RequestBody SysUser sysUser) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return succeed(sysUserService.add(sysUser)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiOperation(value = "设置密码") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@PostMapping(value = "/setPassword", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiImplicitParams({@ApiImplicitParam(name = "password", value = "密码", required = true, dataType = "String"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			@ApiImplicitParam(name = "username", value = "用户名", required = true, dataType = "String") }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public Object setPassword(String password, String username) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (StringUtils.isEmpty(password)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed("参数校验失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		AuthUser authUser = SecurityUtils.getUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (authUser == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed("获取用户信息失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		SysUser sysUser = sysUserService.get(authUser.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (sysUser == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed("用户不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if(sysUser.getUserType().contains("TEACHER") || sysUser.getUserType().contains("SYSTEM")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sysUser.setRealName(username); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sysUser.setUsername(username); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private SysUserService sysUserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private SysRoleService sysRoleService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /*@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private ImFeignService imFeignService;*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private SysUserRoleService sysUserRoleService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private IdGeneratorService smsCodeService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Value("${message.debugMode}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private boolean debugMode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private RealnameAuthenticationPlugin realnameAuthenticationPlugin; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "分页查询用户信息") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiImplicitParams({@ApiImplicitParam(name = "userType", value = "用户类型", required = false, dataType = "String"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @ApiImplicitParam(name = "createStartDate", value = "开始注册时间", required = true, dataType = "String"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @ApiImplicitParam(name = "createEndDate", value = "结束注册时间", required = true, dataType = "String")}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping(value = "/queryPage") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@pcs.hasPermissions('user/queryPage')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object queryPage(SysUserQueryInfo queryInfo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return succeed(sysUserService.queryPage(queryInfo)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "查询用户信息接口") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/query") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@pcs.hasPermissions('user/query')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object query() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AuthUser user = SecurityUtils.getUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (user != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return succeed(sysUserService.get(user.getUserId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return failed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "根据用户编号获取用户基本信息") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/getBasic") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object getBasic(Long userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (userId == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("参数校验异常"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return succeed(sysUserService.getBasic(userId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping(value = "/findByPhone") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object findByPhone(String mobile) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return succeed(sysUserService.queryByPhone(mobile)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping(value = "/queryUserByPhone") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public SysUser queryUserByPhone(String mobile) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return sysUserService.queryByPhone(mobile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping(value = "/noAuth/queryUserByPhone") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object noAuthQueryUserByPhone(String mobile) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysUser sysUser = sysUserService.queryByPhone(mobile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (sysUser == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return succeed(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return succeed(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping(value = "/queryUserById/{userId}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public SysUser queryUserById(@PathVariable("userId") Long userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return sysUserService.get(userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping(value = "/updateSysUser", consumes = MediaType.APPLICATION_JSON_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public boolean updateSysUser(@RequestBody SysUser user) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        user.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUserService.update(user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "新增用户") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping(value = "/add", consumes = MediaType.APPLICATION_JSON_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public HttpResponseResult<Long> add(@RequestBody SysUser sysUser) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return succeed(sysUserService.add(sysUser)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "设置密码") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping(value = "/setPassword", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiImplicitParams({@ApiImplicitParam(name = "password", value = "密码", required = true, dataType = "String"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @ApiImplicitParam(name = "username", value = "用户名", required = true, dataType = "String")}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object setPassword(String password, String username) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (StringUtils.isEmpty(password)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("参数校验失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AuthUser authUser = SecurityUtils.getUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (authUser == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("获取用户信息失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysUser sysUser = sysUserService.get(authUser.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (sysUser == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("用户不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (sysUser.getUserType().contains("TEACHER") || sysUser.getUserType().contains("SYSTEM")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sysUser.setRealName(username); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sysUser.setUsername(username); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		/*if(StringUtils.isEmpty(sysUser.getImToken())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			ImResult register = imFeignService.register(new ImUserModel(sysUser.getId().toString(), username, sysUser.getAvatar())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			sysUser.setImToken(register.getToken()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			imFeignService.update(new ImUserModel(sysUser.getId().toString(),username,sysUser.getAvatar())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		password = new BCryptPasswordEncoder().encode(password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sysUser.setPassword(password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sysUser.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sysUserService.update(sysUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiOperation(value = "修改密码") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@PostMapping(value = "/updatePassword", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiImplicitParams({ @ApiImplicitParam(name = "mobile", value = "手机号", required = true, dataType = "String"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			@ApiImplicitParam(name = "authCode", value = "验证码", required = true, dataType = "String"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			@ApiImplicitParam(name = "newPassword", value = "新密码", required = true, dataType = "String") }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public Object updatePassword(String mobile, String authCode, String newPassword) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (StringUtils.isEmpty(mobile) || StringUtils.isEmpty(authCode) || StringUtils.isEmpty(newPassword)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed("参数校验异常"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		SysUser sysUser = sysUserService.queryByPhone(mobile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (sysUser == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed("用户不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (smsCodeService.verifyValidCode(mobile, authCode)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			String password = new BCryptPasswordEncoder().encode(newPassword); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sysUser.setPassword(password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sysUser.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sysUserService.update(sysUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed("验证码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiOperation(value = "修改手机号") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@PostMapping(value = "/updatePhone") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public Object updatePhone(String oldPhone, String authCode, String newPhone) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (StringUtils.isEmpty(oldPhone) || StringUtils.isEmpty(authCode) || StringUtils.isEmpty(newPhone)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed("参数校验异常"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if(oldPhone.equals(newPhone)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed("新旧手机号一致"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		SysUser sysUser = sysUserService.queryByPhone(oldPhone); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (sysUser == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed("用户不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		SysUser newSysUser = sysUserService.queryByPhone(newPhone); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (newSysUser != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed("手机号被占用"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (smsCodeService.verifyValidCode(newPhone, authCode)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sysUser.setPhone(newPhone); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sysUser.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sysUserService.update(sysUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed("验证码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiOperation(value = "修改密码") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@PostMapping(value = "/updatePassword2", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiImplicitParams({ @ApiImplicitParam(name = "mobile", value = "手机号", required = true, dataType = "String"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			@ApiImplicitParam(name = "userId", value = "用户编号", required = true, dataType = "Integer"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			@ApiImplicitParam(name = "newPassword", value = "新密码", required = true, dataType = "String") }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public Object updatePassword2(Long userId, String mobile, String newPassword) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (StringUtils.isEmpty(mobile) || userId == null || StringUtils.isEmpty(newPassword)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed("参数校验异常"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		SysUser sysUser = sysUserService.queryByPhone(mobile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (sysUser == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed("用户不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (sysUser.getId().intValue() != userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed("非法操作"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		String password = new BCryptPasswordEncoder().encode(newPassword); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sysUser.setPassword(password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sysUser.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sysUserService.update(sysUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiOperation(value = "修改用户") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@PostMapping(value = "/update", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public Object update(SysUser sysUser) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		AuthUser user = SecurityUtils.getUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (user != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sysUser.setId(user.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sysUser.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(sysUser.getBirthdate() != null && DateUtil.daysBetween(sysUser.getBirthdate(),date) <= 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				throw new BizException("出生日期不可超过当前时间"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sysUserService.updateBaseInfo(sysUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return failed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiOperation(value = "刷新token") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@PostMapping(value = "/refreshImToken") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public Object refreshImToken() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		AuthUser user = SecurityUtils.getUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (user != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			SysUser sysUser = sysUserService.get(user.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			String username; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(sysUser.getUserType().contains("TEACHER") || sysUser.getUserType().contains("SYSTEM")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				username = sysUser.getRealName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				username = sysUser.getUsername(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(StringUtils.isEmpty(username)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				return failed("获取Token失败: 用户名为空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        password = new BCryptPasswordEncoder().encode(password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUser.setPassword(password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUser.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUserService.update(sysUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "手机验证码修改密码") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping(value = "/updatePassword", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiImplicitParams({@ApiImplicitParam(name = "mobile", value = "手机号", required = true, dataType = "String"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @ApiImplicitParam(name = "authCode", value = "验证码", required = true, dataType = "String"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @ApiImplicitParam(name = "newPassword", value = "新密码", required = true, dataType = "String")}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object updatePassword(String mobile, String authCode, String newPassword) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (StringUtils.isEmpty(mobile) || StringUtils.isEmpty(authCode) || StringUtils.isEmpty(newPassword)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("参数校验异常"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysUser sysUser = sysUserService.queryByPhone(mobile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (sysUser == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("用户不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (smsCodeService.verifyValidCode(mobile, authCode)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String password = new BCryptPasswordEncoder().encode(newPassword); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sysUser.setPassword(password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sysUser.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sysUserService.update(sysUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("验证码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "原密码修改密码") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping(value = "/updatePasswordByOldPassword") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object updatePasswordByOldPassword(@RequestBody UpdatePasswordDto updatePasswordDto) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!updatePasswordDto.getNewPasswordFirst().equals(updatePasswordDto.getNewPasswordSecond())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("两次输入密码不一致"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AuthUser authUser = SecurityUtils.getUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysUser sysUser = sysUserService.get(authUser.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (sysUser == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("用户不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String oldPassword = new BCryptPasswordEncoder().encode(updatePasswordDto.getOldPassword()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!oldPassword.equals(sysUser.getPassword())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("原密码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUser.setPassword(new BCryptPasswordEncoder().encode(updatePasswordDto.getNewPasswordFirst())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUser.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUserService.update(sysUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "修改手机号") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping(value = "/updatePhone") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object updatePhone(String oldPhone, String authCode, String newPhone) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (StringUtils.isEmpty(oldPhone) || StringUtils.isEmpty(authCode) || StringUtils.isEmpty(newPhone)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("参数校验异常"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (oldPhone.equals(newPhone)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("新旧手机号一致"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysUser sysUser = sysUserService.queryByPhone(oldPhone); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (sysUser == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("用户不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysUser newSysUser = sysUserService.queryByPhone(newPhone); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (newSysUser != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("手机号被占用"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (smsCodeService.verifyValidCode(newPhone, authCode)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sysUser.setPhone(newPhone); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sysUser.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sysUserService.update(sysUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("验证码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "管理后台修改密码") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping(value = "/updatePassword2", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiImplicitParams({@ApiImplicitParam(name = "mobile", value = "手机号", required = true, dataType = "String"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @ApiImplicitParam(name = "userId", value = "用户编号", required = true, dataType = "Integer"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @ApiImplicitParam(name = "newPassword", value = "新密码", required = true, dataType = "String")}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object updatePassword2(Long userId, String mobile, String newPassword) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (StringUtils.isEmpty(mobile) || userId == null || StringUtils.isEmpty(newPassword)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("参数校验异常"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysUser sysUser = sysUserService.queryByPhone(mobile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (sysUser == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("用户不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (sysUser.getId().intValue() != userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("非法操作"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String password = new BCryptPasswordEncoder().encode(newPassword); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUser.setPassword(password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUser.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUserService.update(sysUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "修改用户") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping(value = "/update", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object update(SysUser sysUser) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AuthUser user = SecurityUtils.getUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (user != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sysUser.setId(user.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sysUser.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (sysUser.getBirthdate() != null && DateUtil.daysBetween(sysUser.getBirthdate(), date) <= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw new BizException("出生日期不可超过当前时间"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sysUserService.updateBaseInfo(sysUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return failed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "刷新token") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping(value = "/refreshImToken") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object refreshImToken() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AuthUser user = SecurityUtils.getUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (user != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            SysUser sysUser = sysUserService.get(user.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String username; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (sysUser.getUserType().contains("TEACHER") || sysUser.getUserType().contains("SYSTEM")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                username = sysUser.getRealName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                username = sysUser.getUsername(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (StringUtils.isEmpty(username)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return failed("获取Token失败: 用户名为空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				/*ImResult register = imFeignService.register(new ImUserModel(sysUser.getId().toString(), username, sysUser.getAvatar())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if(StringUtils.isEmpty(register.getToken())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					return failed("获取Token失败: 请联系教务老师"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -269,72 +295,105 @@ public class UserController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				sysUser.setImToken(register.getToken()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				sysUserService.refreshImToken(sysUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				return succeed(register.getToken());*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return failed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiOperation(value = "校验用户手机号和密码") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@GetMapping(value = "/checkUser") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public Object checkUser(String phone,String password) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if(StringUtils.isEmpty(phone) || StringUtils.isEmpty(password)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			throw new BizException("请录入用户名和密码"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		AuthUser user = SecurityUtils.getUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (user != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			SysUser sysUser = sysUserService.get(user.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(!sysUser.getPhone().equals(phone)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				return failed("手机号校验失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(new BCryptPasswordEncoder().matches(password,sysUser.getPassword())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				return failed("密码校验失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return failed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiOperation(value = "获取用户角色列表") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@GetMapping("/getRole") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@PreAuthorize("@pcs.hasPermissions('user/getRole')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public Object getRole() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		AuthUser user = SecurityUtils.getUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (user != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			SysUser sysUser = sysUserService.get(user.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(sysUser.getIsSuperAdmin()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				QueryInfo queryInfo = new QueryInfo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				queryInfo.setRows(9999); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				return succeed(sysRoleService.queryPage(queryInfo).getRows()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return succeed(sysRoleService.findRoleByUserId(user.getUserId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return failed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiOperation(value = "用户角色新增") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiImplicitParams({ @ApiImplicitParam(name = "userId", value = "用户编号", required = true, dataType = "Integer"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			@ApiImplicitParam(name = "roleIds", value = "角色id,逗号分隔", required = true, dataType = "String") }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@PostMapping(value = "/addRole", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@PreAuthorize("@pcs.hasPermissions('user/addRole')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public Object getRole(String userId, String roleIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (StringUtils.isEmpty(userId) || StringUtils.isEmpty(roleIds)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed(SecurityConstants.PARAM_VERIFY_EXCEPTION); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sysUserRoleService.batchInsert(Long.parseLong(userId), roleIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiOperation(value = "用户角色删除") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiImplicitParams({ @ApiImplicitParam(name = "userId", value = "用户编号", required = true, dataType = "Integer"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			@ApiImplicitParam(name = "roleIds", value = "角色id,逗号分隔", required = true, dataType = "String") }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@PostMapping(value = "/delRole", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@PreAuthorize("@pcs.hasPermissions('user/delRole')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public Object delRole(String userId, String roleIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (StringUtils.isEmpty(userId) || StringUtils.isEmpty(roleIds)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed(SecurityConstants.PARAM_VERIFY_EXCEPTION); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sysUserRoleService.batchDel(Long.parseLong(userId), roleIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return failed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "校验用户手机号和密码") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping(value = "/checkUser") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object checkUser(String phone, String password) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (StringUtils.isEmpty(phone) || StringUtils.isEmpty(password)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new BizException("请录入用户名和密码"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AuthUser user = SecurityUtils.getUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (user != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            SysUser sysUser = sysUserService.get(user.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!sysUser.getPhone().equals(phone)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return failed("手机号校验失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (new BCryptPasswordEncoder().matches(password, sysUser.getPassword())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return failed("密码校验失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return failed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "获取用户角色列表") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/getRole") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@pcs.hasPermissions('user/getRole')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object getRole() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AuthUser user = SecurityUtils.getUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (user != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            SysUser sysUser = sysUserService.get(user.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (sysUser.getIsSuperAdmin()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                QueryInfo queryInfo = new QueryInfo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                queryInfo.setRows(9999); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return succeed(sysRoleService.queryPage(queryInfo).getRows()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return succeed(sysRoleService.findRoleByUserId(user.getUserId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return failed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "用户角色新增") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiImplicitParams({@ApiImplicitParam(name = "userId", value = "用户编号", required = true, dataType = "Integer"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @ApiImplicitParam(name = "roleIds", value = "角色id,逗号分隔", required = true, dataType = "String")}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping(value = "/addRole", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@pcs.hasPermissions('user/addRole')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object getRole(String userId, String roleIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (StringUtils.isEmpty(userId) || StringUtils.isEmpty(roleIds)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed(SecurityConstants.PARAM_VERIFY_EXCEPTION); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUserRoleService.batchInsert(Long.parseLong(userId), roleIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "用户角色删除") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiImplicitParams({@ApiImplicitParam(name = "userId", value = "用户编号", required = true, dataType = "Integer"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @ApiImplicitParam(name = "roleIds", value = "角色id,逗号分隔", required = true, dataType = "String")}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping(value = "/delRole", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@pcs.hasPermissions('user/delRole')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Object delRole(String userId, String roleIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (StringUtils.isEmpty(userId) || StringUtils.isEmpty(roleIds)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed(SecurityConstants.PARAM_VERIFY_EXCEPTION); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUserRoleService.batchDel(Long.parseLong(userId), roleIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return succeed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("/realNameAuth") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "实名认证", notes = "传入realNameAuthDto") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ResponseBody 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public HttpResponseResult<IdcardInfoExtractor> realNameAuth(@Valid @RequestBody RealnameAuthReq realNameAuthDto) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AuthUser authUser = SecurityUtils.getUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (authUser != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed(HttpStatus.FORBIDDEN, "请登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysUser user = sysUserService.get(authUser.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (user == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("用户不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IdcardValidator idcardValidator = new IdcardValidator(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //验证身份证号合法性 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        boolean validatedAllIdcard = idcardValidator.isValidatedAllIdcard(realNameAuthDto.getIdCardNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!validatedAllIdcard) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("身份证号不合法"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //通过身份证号获取身份信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IdcardInfoExtractor idcardInfoExtractor = new IdcardInfoExtractor(realNameAuthDto.getIdCardNo(), validatedAllIdcard); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        boolean verify = realnameAuthenticationPlugin.verify(realNameAuthDto.getRealName(), realNameAuthDto.getIdCardNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (verify && realNameAuthDto.getSave()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //实名认证通过后立刻保存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sysUserService.updateUserCard(realNameAuthDto, idcardInfoExtractor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return succeed(idcardInfoExtractor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed("未通过实名认证"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |