| 
						
						
							
								
							
						
						
					 | 
					@ -127,17 +127,68 @@ public class LoginServiceImpl implements LoginService { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							WxLoginUserInfoFormDTO wxLoginUserInfoFormDTO = new WxLoginUserInfoFormDTO(); | 
					 | 
					 | 
							WxLoginUserInfoFormDTO wxLoginUserInfoFormDTO = new WxLoginUserInfoFormDTO(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							wxLoginUserInfoFormDTO.setApp(formDTO.getApp()); | 
					 | 
					 | 
							wxLoginUserInfoFormDTO.setApp(formDTO.getApp()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							wxLoginUserInfoFormDTO.setOpenId(wxMaJscode2SessionResult.getOpenid()); | 
					 | 
					 | 
							wxLoginUserInfoFormDTO.setOpenId(wxMaJscode2SessionResult.getOpenid()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							//1、先根据app、client、openId查询
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							Result<String> userResult = epmetUserFeignClient.selecWxLoginUserInfo(wxLoginUserInfoFormDTO); | 
					 | 
					 | 
							Result<String> userResult = epmetUserFeignClient.selecWxLoginUserInfo(wxLoginUserInfoFormDTO); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							String userId = ""; | 
					 | 
					 | 
							String userId = ""; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							if (!userResult.success()) { | 
					 | 
					 | 
							if (!userResult.success()) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								throw new RenException("获取用户信息失败" + userResult.getMsg()); | 
					 | 
					 | 
								throw new RenException("获取用户信息失败" + userResult.getMsg()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							} | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							userId = (String) userResult.getData(); | 
					 | 
					 | 
							userId = userResult.getData(); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
							if (StringUtils.isBlank(userId) && LoginConstant.APP_GOV.equals(formDTO.getApp())) { | 
					 | 
					 | 
							//2、如果已经存在userId,则更新微信信息
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							if (StringUtils.isNotBlank(userId) && StringUtils.isNotBlank(formDTO.getEncryptedData()) && StringUtils.isNotBlank(formDTO.getIv())) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								this.updateWxInfO(userId,formDTO,wxMaJscode2SessionResult); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							//3、数据库不存在此用户则创建此用户
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							if (StringUtils.isBlank(userId)) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								userId = createEpmtUser(formDTO, wxMaJscode2SessionResult); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							return userId; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						/** | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @return com.epmet.commons.tools.utils.Result | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param userId | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param wxMaJscode2SessionResult | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @Author yinzuomei | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @Description 获取用户微信基本信息更新到本地 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @Date 2020/3/20 19:51 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						 **/ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						private Result updateWxInfO(String userId, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
													LoginByWxCodeFormDTO formDTO, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
													WxMaJscode2SessionResult wxMaJscode2SessionResult) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							if (LoginConstant.APP_GOV.equals(formDTO.getApp())) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								//查询customer_staff待完善
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							} else if (LoginConstant.APP_OPER.equals(formDTO.getApp())) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								//查询oper_user待完善
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							} else if (LoginConstant.APP_RESI.equals(formDTO.getApp())) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								WxMaUserInfo wxMaUserInfo = wxMaServiceUtils.resiWxMaService().getUserService() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
										.getUserInfo(wxMaJscode2SessionResult.getSessionKey(), | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
												formDTO.getEncryptedData(), | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
												formDTO.getIv()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								CustomerUserDTO customerUserDTO = this.packageCustomerUserDTO(wxMaUserInfo); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								customerUserDTO.setId(userId); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								epmetUserFeignClient.saveOrUpdateCustomerUser(customerUserDTO); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							return new Result(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						/** | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param formDTO | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param wxMaJscode2SessionResult | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @return java.lang.String | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @Author yinzuomei | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @Description 陌生人首次授权,创建用户信息 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @Date 2020/3/20 19:42 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						 **/ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						private String createEpmtUser(LoginByWxCodeFormDTO formDTO, WxMaJscode2SessionResult wxMaJscode2SessionResult) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							String userId = ""; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							if (LoginConstant.APP_GOV.equals(formDTO.getApp())) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								//查询customer_staff待完善
 | 
					 | 
					 | 
								//查询customer_staff待完善
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							} else if (StringUtils.isBlank(userId) && LoginConstant.APP_OPER.equals(formDTO.getApp())) { | 
					 | 
					 | 
							} else if (LoginConstant.APP_OPER.equals(formDTO.getApp())) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
								//查询oper_user待完善
 | 
					 | 
					 | 
								//查询oper_user待完善
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							} else if (StringUtils.isBlank(userId) && LoginConstant.APP_RESI.equals(formDTO.getApp())) { | 
					 | 
					 | 
							} else if (LoginConstant.APP_RESI.equals(formDTO.getApp())) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
								//查询customer_user
 | 
					 | 
					 | 
								//查询customer_user
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								CustomerUserDTO customerUserDTO = new CustomerUserDTO(); | 
					 | 
					 | 
								CustomerUserDTO customerUserDTO = new CustomerUserDTO(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								if (StringUtils.isNotBlank(formDTO.getIv()) && StringUtils.isNotBlank(formDTO.getEncryptedData())) { | 
					 | 
					 | 
								if (StringUtils.isNotBlank(formDTO.getIv()) && StringUtils.isNotBlank(formDTO.getEncryptedData())) { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -150,9 +201,9 @@ public class LoginServiceImpl implements LoginService { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									customerUserDTO.setWxOpenId(wxMaJscode2SessionResult.getOpenid()); | 
					 | 
					 | 
									customerUserDTO.setWxOpenId(wxMaJscode2SessionResult.getOpenid()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									customerUserDTO.setUnionId(wxMaJscode2SessionResult.getUnionid()); | 
					 | 
					 | 
									customerUserDTO.setUnionId(wxMaJscode2SessionResult.getUnionid()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								} | 
					 | 
					 | 
								} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
								Result<String> saveCustomerUserResult = epmetUserFeignClient.saveCustomerUser(customerUserDTO); | 
					 | 
					 | 
								Result<String> saveCustomerUserResult = epmetUserFeignClient.saveOrUpdateCustomerUser(customerUserDTO); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
								if (!saveCustomerUserResult.success()) { | 
					 | 
					 | 
								if (!saveCustomerUserResult.success()) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
									throw new RenException("创建用户失败" + userResult.getMsg()); | 
					 | 
					 | 
									throw new RenException("创建用户失败" + saveCustomerUserResult.getMsg()); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
								} | 
					 | 
					 | 
								} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								userId = saveCustomerUserResult.getData(); | 
					 | 
					 | 
								userId = saveCustomerUserResult.getData(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							} | 
					 | 
					 | 
							} | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -286,10 +337,16 @@ public class LoginServiceImpl implements LoginService { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						@Override | 
					 | 
					 | 
						@Override | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
						public Result logoutByToken(String token) { | 
					 | 
					 | 
						public Result logoutByToken(TokenDto tokenDto) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
							//记录登出日志
 | 
					 | 
					 | 
							//记录登出日志
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							//删除redis
 | 
					 | 
					 | 
							//删除redis
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							if(null == tokenDto){ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								return new Result().error("当前用户信息获取失败!"); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							cpUserDetailRedis.logout(tokenDto.getApp() , tokenDto.getClient() , tokenDto.getUserId()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							//web端清空菜单栏和权限,小程序目前又
 | 
					 | 
					 | 
							//web端清空菜单栏和权限,小程序目前又
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							return null; | 
					 | 
					 | 
							return new Result().ok("退出登录!"); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
						} | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
					 | 
					
  |