当前位置: 首页>>代码示例>>Java>>正文


Java UserLocalServiceUtil.fetchUser方法代码示例

本文整理汇总了Java中com.liferay.portal.kernel.service.UserLocalServiceUtil.fetchUser方法的典型用法代码示例。如果您正苦于以下问题:Java UserLocalServiceUtil.fetchUser方法的具体用法?Java UserLocalServiceUtil.fetchUser怎么用?Java UserLocalServiceUtil.fetchUser使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.liferay.portal.kernel.service.UserLocalServiceUtil的用法示例。


在下文中一共展示了UserLocalServiceUtil.fetchUser方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: uploadPhoto

import com.liferay.portal.kernel.service.UserLocalServiceUtil; //导入方法依赖的package包/类
@Override
public File uploadPhoto(long userId, long companyId, long groupId, long id, InputStream inputStream,
		String fileName, String fileType, long fileSize, String destination, String desc,
		ServiceContext serviceContext) throws Exception {
	File file = null;

	FileEntry fileEntry = FileUploadUtils.uploadFile(userId, companyId, groupId, inputStream, fileName, fileType,
			fileSize, destination, desc, serviceContext);

	User user = UserLocalServiceUtil.fetchUser(id);

	file = DLFileEntryLocalServiceUtil.getFile(fileEntry.getFileEntryId(), fileEntry.getVersion(), false);

	UserLocalServiceUtil.updatePortrait(user.getUserId(), FileUtil.getBytes(file));

	return file;
}
 
开发者ID:VietOpenCPS,项目名称:opencps-v2,代码行数:18,代码来源:UserActions.java

示例2: doGetDocument

import com.liferay.portal.kernel.service.UserLocalServiceUtil; //导入方法依赖的package包/类
@Override
protected Document doGetDocument(ResourceUser resourceUser) throws Exception {
	Document document = getBaseModelDocument(CLASS_NAME, resourceUser);

	document.addKeywordSortable(Field.COMPANY_ID, String.valueOf(resourceUser.getCompanyId()));
	document.addDateSortable(Field.MODIFIED_DATE, resourceUser.getModifiedDate());
	document.addKeywordSortable(Field.USER_ID, String.valueOf(resourceUser.getUserId()));
	document.addKeywordSortable(Field.USER_NAME, String.valueOf(resourceUser.getUserName()));

	document.addNumberSortable(ResourceUserTerm.GROUP_ID, resourceUser.getGroupId());
	document.addNumberSortable(ResourceUserTerm.RESOURCEUSER_ID, resourceUser.getResourceUserId());
	document.addTextSortable(ResourceUserTerm.CLASS_NAME, resourceUser.getClassName());
	document.addTextSortable(ResourceUserTerm.CLASS_PK, resourceUser.getClassPK());
	document.addNumberSortable(ResourceUserTerm.TO_USERID, resourceUser.getToUserId());
	document.addTextSortable("selected", Boolean.TRUE.toString());
	
	User user = UserLocalServiceUtil.fetchUser(resourceUser.getToUserId());
	
	String userName = StringPool.BLANK;
	String email = StringPool.BLANK;
	
	if(Validator.isNotNull(user)){
		
		userName = user.getFullName();
		email = user.getEmailAddress();
		
	}
	
	document.addTextSortable(ResourceUserTerm.TO_USERNAME, userName);
	document.addTextSortable(ResourceUserTerm.EMAIL, email);
	document.addTextSortable(ResourceUserTerm.USERCLASS, Employee.class.getName());
	
	return document;
}
 
开发者ID:VietOpenCPS,项目名称:opencps-v2,代码行数:35,代码来源:ResourceUserIndexer.java

示例3: doGetDocument

import com.liferay.portal.kernel.service.UserLocalServiceUtil; //导入方法依赖的package包/类
@Override
protected Document doGetDocument(OfficeSite officeSite) throws Exception {
	Document document = getBaseModelDocument(CLASS_NAME, officeSite);

	document.addKeywordSortable(Field.COMPANY_ID, String.valueOf(officeSite.getCompanyId()));
	document.addDateSortable(Field.MODIFIED_DATE, officeSite.getModifiedDate());
	document.addKeywordSortable(Field.USER_ID, String.valueOf(officeSite.getUserId()));
	document.addKeywordSortable(Field.USER_NAME, String.valueOf(officeSite.getUserName()));

	document.addNumberSortable(OfficeSiteTerm.OFFICE_SITE_ID, officeSite.getOfficeSiteId());
	document.addNumberSortable(OfficeSiteTerm.GROUP_ID, officeSite.getGroupId());
	document.addTextSortable(OfficeSiteTerm.NAME, officeSite.getName());
	document.addTextSortable(OfficeSiteTerm.EN_NAME, officeSite.getEnName());
	document.addTextSortable(OfficeSiteTerm.GOV_AGENCY_CODE, officeSite.getGovAgencyCode());
	document.addTextSortable(OfficeSiteTerm.ADDRESS, officeSite.getAddress());
	document.addTextSortable(OfficeSiteTerm.TEL_NO, officeSite.getTelNo());
	document.addTextSortable(OfficeSiteTerm.FAX_NO, officeSite.getFaxNo());
	document.addTextSortable(OfficeSiteTerm.EMAIL, officeSite.getEmail());
	document.addTextSortable(OfficeSiteTerm.WEBSITE, officeSite.getWebsite());
	document.addNumberSortable(OfficeSiteTerm.LOGO_FILE_ENTRY_ID, officeSite.getLogoFileEntryId());
	document.addNumberSortable(OfficeSiteTerm.SITE_GROUP_ID, officeSite.getSiteGroupId());
	document.addNumberSortable(OfficeSiteTerm.ADMIN_USER_ID, officeSite.getAdminUserId());
	document.addTextSortable(OfficeSiteTerm.PREFERENCES, officeSite.getPreferences());
	
	User adminUser = UserLocalServiceUtil.fetchUser(officeSite.getAdminUserId());
	
	if(Validator.isNotNull(adminUser)){
		
		document.addTextSortable("adminUser_screenName", adminUser.getScreenName());
		document.addTextSortable("adminUser_email", adminUser.getEmailAddress());
		
	}

	return document;
}
 
开发者ID:VietOpenCPS,项目名称:opencps-v2,代码行数:36,代码来源:OfficeSiteIndexer.java

示例4: getPhoto

import com.liferay.portal.kernel.service.UserLocalServiceUtil; //导入方法依赖的package包/类
@Override
public File getPhoto(long id, ServiceContext serviceContext) {
	User user = UserLocalServiceUtil.fetchUser(id);

	File file = null;
	Image image = ImageLocalServiceUtil.fetchImage(user.getPortraitId());

	try {
		file = FileUtil.createTempFile(image.getTextObj());
	} catch (IOException e) {
		e.printStackTrace();
	}

	return file;
}
 
开发者ID:VietOpenCPS,项目名称:opencps-v2,代码行数:16,代码来源:UserActions.java

示例5: getUserProfile

import com.liferay.portal.kernel.service.UserLocalServiceUtil; //导入方法依赖的package包/类
@Override
public Document getUserProfile(long id, long groupId, ServiceContext serviceContext) {
	Employee employee = EmployeeLocalServiceUtil.fetchByF_mappingUserId(groupId, id);
	//TODO
	// PARTER INFO
	Document document = new DocumentImpl();
	
	User user = UserLocalServiceUtil.fetchUser(employee.getMappingUserId());
	
	String screenName = StringPool.BLANK;
	String email = StringPool.BLANK;
	
	if(Validator.isNotNull(user)){
		
		screenName = user.getScreenName();
		email = user.getEmailAddress();
		
	}
	
	document.addTextSortable("className", Employee.class.getName());
	document.addTextSortable("classPK", String.valueOf(employee.getEmployeeId()));
	
	document.addTextSortable("screenName", screenName);
	document.addTextSortable("email", email);
	document.addTextSortable("fullName", employee.getFullName());
	
	document.addTextSortable("contactEmail", employee.getEmail());
	document.addTextSortable("contactTelNo", employee.getTelNo());
	document.addNumberSortable("gender", employee.getGender());
	document.addDateSortable("birthdate", employee.getBirthdate());
	
	return document;
	
	
}
 
开发者ID:VietOpenCPS,项目名称:opencps-v2,代码行数:36,代码来源:UserActions.java

示例6: mappingToActionPOST

import com.liferay.portal.kernel.service.UserLocalServiceUtil; //导入方法依赖的package包/类
public static ProcessActionReturnModel mappingToActionPOST(ProcessAction action) {

		ProcessActionReturnModel model = new ProcessActionReturnModel();

		model.setProcessActionId(String.valueOf(action.getPrimaryKey()));
		model.setActionCode(action.getActionCode());
		model.setActionName(action.getActionName());
		model.setPreStepCode(action.getPreStepCode());
		model.setPostStepCode(action.getPostStepCode());
		model.setAutoEvent(action.getAutoEvent());
		model.setPreCondition(action.getPreCondition());
		model.setAllowAssignUser(Boolean.toString(action.getAllowAssignUser()));
		model.setAssignUserId(String.valueOf(action.getAssignUserId()));

		String assignName = StringPool.BLANK;

		if (action.getAssignUserId() != 0) {
			User user = UserLocalServiceUtil.fetchUser(action.getAssignUserId());

			if (Validator.isNotNull(user)) {

				assignName = user.getFullName();
			}
		}

		model.setAssignUserName(assignName);
		model.setRequestPayment(Boolean.toString(action.getRequestPayment()));
		model.setPaymentFee(action.getPaymentFee());
		model.setMakeBriefNote(action.getMakeBriefNote());
		model.setSyncActionCode(action.getSyncActionCode());
		model.setRollbackable(Boolean.toString(action.getRollbackable()));

		model.getCreateDossierFiles()
				.addAll(ListUtil.toList(StringUtil.split(action.getCreateDossierFiles(), StringPool.COMMA)));

		model.getReturnDossierFiles()
				.addAll(ListUtil.toList(StringUtil.split(action.getReturnDossierFiles(), StringPool.COMMA)));
		
		model.setCreateDossierNo(action.getCreateDossierNo());
		model.seteSignature(action.getESignature());
		
		return model;
	}
 
开发者ID:VietOpenCPS,项目名称:opencps-v2,代码行数:44,代码来源:ServiceProcessUtils.java

示例7: mapperResourceUserModel

import com.liferay.portal.kernel.service.UserLocalServiceUtil; //导入方法依赖的package包/类
public static ResourceUserModel mapperResourceUserModel(ResourceUser resourceUser) {

		ResourceUserModel ett = new ResourceUserModel();

		try {

			ett.setUserId(resourceUser.getToUserId());

			User user = UserLocalServiceUtil.fetchUser(resourceUser.getUserId());

			ett.setFullName(user.getFullName());

			ett.setSelected(true);

		} catch (Exception e) {
			_log.error(e);
		}

		return ett;
	}
 
开发者ID:VietOpenCPS,项目名称:opencps-v2,代码行数:21,代码来源:ResourceUserUtils.java

示例8: mapperOfficeSiteModel

import com.liferay.portal.kernel.service.UserLocalServiceUtil; //导入方法依赖的package包/类
public static OfficeSiteModel mapperOfficeSiteModel(OfficeSite officeSite) {

		OfficeSiteModel ett = new OfficeSiteModel();

		try {

			ett.setOfficeSiteId(officeSite.getOfficeSiteId());
			ett.setCreateDate(Validator.isNotNull(officeSite.getCreateDate()) ? APIDateTimeUtils
					.convertDateToString(officeSite.getCreateDate(), APIDateTimeUtils._TIMESTAMP)
					: StringPool.BLANK);
			ett.setModifiedDate(
					Validator.isNotNull(officeSite.getModifiedDate()) ? APIDateTimeUtils.convertDateToString(
							officeSite.getModifiedDate(), APIDateTimeUtils._TIMESTAMP) : StringPool.BLANK);

			ett.setName(officeSite.getName());
			ett.setEnName(officeSite.getEnName());
			ett.setGovAgencyCode(officeSite.getGovAgencyCode());
			ett.setAddress(officeSite.getAddress());
			ett.setTelNo(officeSite.getTelNo());
			ett.setFaxNo(officeSite.getFaxNo());
			ett.setEmail(officeSite.getEmail());
			ett.setWebsite(officeSite.getWebsite());
			
			SiteGroup siteGroup = new SiteGroup();
			
			Group group = GroupLocalServiceUtil.fetchGroup(officeSite.getGroupId());
			
			siteGroup.setGroupId(officeSite.getGroupId());
			siteGroup.setGroupName(group.getNameCurrentValue());
			
			ett.getSiteGroup().add(siteGroup);
			
			AdminUser adminUser = new AdminUser();
			
			adminUser.setUserId(officeSite.getAdminUserId());
			
			User user = UserLocalServiceUtil.fetchUser(officeSite.getAdminUserId());
			
			adminUser.setScreenName(user.getScreenName());
			adminUser.setEmail(user.getEmailAddress());
			
			ett.getAdminUser().add(adminUser);

		} catch (Exception e) {
			_log.error(e);
		}

		return ett;
	}
 
开发者ID:VietOpenCPS,项目名称:opencps-v2,代码行数:50,代码来源:OfficeSiteUtils.java

示例9: mapperEmployeeList

import com.liferay.portal.kernel.service.UserLocalServiceUtil; //导入方法依赖的package包/类
public static List<EmployeeModel> mapperEmployeeList(List<Document> listDocument) {

		List<EmployeeModel> results = new ArrayList<>();

		try {

			EmployeeModel ett = null;

			for (Document document : listDocument) {
				ett = new EmployeeModel();

				ett.setEmployeeId(Long.valueOf(document.get("entryClassPK")));
				ett.setUserId(Long.valueOf(document.get(EmployeeTerm.USER_ID)));
				ett.setUserName(document.get(EmployeeTerm.USER_NAME));
				ett.setCreateDate(Validator.isNotNull(document.getDate(EmployeeTerm.CREATE_DATE)) ? APIDateTimeUtils
						.convertDateToString(document.getDate(EmployeeTerm.CREATE_DATE), APIDateTimeUtils._TIMESTAMP)
						: StringPool.BLANK);
				ett.setModifiedDate(
						Validator.isNotNull(document.getDate("modified")) ? APIDateTimeUtils.convertDateToString(
								document.getDate("modified"), APIDateTimeUtils._TIMESTAMP) : StringPool.BLANK);

				ett.setEmployeeNo(document.get(EmployeeTerm.EMPLOYEE_NO));
				ett.setFullName(document.get(EmployeeTerm.FULL_NAME));
				ett.setTitle(document.get(EmployeeTerm.TITLE));
				ett.setGender(document.get(EmployeeTerm.GENDER));
				ett.setBirthdate(document.get(EmployeeTerm.BIRTH_DATE));
				ett.setTelNo(document.get(EmployeeTerm.TELNO));
				ett.setMobile(document.get(EmployeeTerm.MOBILE));
				ett.setEmail(document.get(EmployeeTerm.EMAIL));
				ett.setWorkingStatus(document.get(EmployeeTerm.WORKING_STATUS));
				ett.setBirthdate(
						Validator.isNotNull(document.get(EmployeeTerm.BIRTH_DATE)) ? APIDateTimeUtils.convertDateToString(
								document.getDate(EmployeeTerm.BIRTH_DATE), APIDateTimeUtils._TIMESTAMP) : StringPool.BLANK);
				// TODO
				ett.setPermission("read");

				// mapping userID
				long mappingUserId = GetterUtil.get(document.get(EmployeeTerm.MAPPING_USER_ID), 0);

				User user = UserLocalServiceUtil.fetchUser(mappingUserId);

				MappingUser mappingUser = new MappingUser();

				if (Validator.isNotNull(user)) {
					mappingUser.setUserId(user.getUserId());
					mappingUser.setScreenName(user.getScreenName());
					
					boolean lock = false;
					
					if(user.getStatus() == WorkflowConstants.STATUS_DENIED){
						lock = true;
					}
					
					mappingUser.setLocking(lock);
				}

				ett.getMappingUser().add(mappingUser);

				// Roles
				ett.setWorkingUnitName(document.get(EmployeeTerm.WORKING_UNIT_NAME));
				ett.setJobPosTitle(document.get(EmployeeTerm.JOB_POS_TITLE));
				results.add(ett);
			}

		} catch (Exception e) {
			_log.error(e);
		}

		return results;
	}
 
开发者ID:VietOpenCPS,项目名称:opencps-v2,代码行数:71,代码来源:EmployeeUtils.java

示例10: lockEmployeeAccount

import com.liferay.portal.kernel.service.UserLocalServiceUtil; //导入方法依赖的package包/类
@Override
public JSONObject lockEmployeeAccount(
	long userId, long companyId, long groupId, long id, boolean locked,
	ServiceContext serviceContext)
	throws PortalException {

	JSONObject jsonObject = JSONFactoryUtil.createJSONObject();

	// Employee employee = EmployeeLocalServiceUtil.fetchEmployee(id);
	Employee employee = EmployeeLocalServiceUtil.getEmployee(id);

	if (Validator.isNotNull(employee) && employee.getMappingUserId() < 0) {

		throw new NoSuchUserException();
	}
	else {
		User user =
			UserLocalServiceUtil.fetchUser(employee.getMappingUserId());

		if (locked) {
			user.setStatus(WorkflowConstants.STATUS_INACTIVE);
		}
		else {
			user.setStatus(WorkflowConstants.STATUS_APPROVED);
		}

		UserLocalServiceUtil.updateUser(user);

		Indexer<User> indexer =
			IndexerRegistryUtil.nullSafeGetIndexer(User.class);

		indexer.reindex(user);

		jsonObject.put("screenName", user.getScreenName());
		jsonObject.put("email", user.getEmailAddress());
		jsonObject.put("exist", true);

		JSONObject payLoad = JSONFactoryUtil.createJSONObject();

		payLoad.put("USERNAME", user.getScreenName());
		payLoad.put("USEREMAIL", user.getEmailAddress());
		payLoad.put(
				"USERSTATUS",
				LanguageUtil.get(locale, "user-status-" + user.getStatus()));

		NotificationQueueLocalServiceUtil.addNotificationQueue(
			user.getUserId(), groupId, Constants.USER_02,
			User.class.getName(), String.valueOf(user.getUserId()),
			payLoad.toJSONString(), "SYSTEM", user.getFullName(),
			employee.getMappingUserId(), employee.getEmail(),
			employee.getTelNo(), new Date(), null, serviceContext);

	}

	return jsonObject;
}
 
开发者ID:VietOpenCPS,项目名称:opencps-v2,代码行数:57,代码来源:EmployeeActions.java

示例11: getUserById

import com.liferay.portal.kernel.service.UserLocalServiceUtil; //导入方法依赖的package包/类
@Override
public User getUserById(long groupId, long companyId, long id, ServiceContext serviceContext) {
	return UserLocalServiceUtil.fetchUser(id);
}
 
开发者ID:VietOpenCPS,项目名称:opencps-v2,代码行数:5,代码来源:UserActions.java

示例12: getUser

import com.liferay.portal.kernel.service.UserLocalServiceUtil; //导入方法依赖的package包/类
public static User getUser(long applicantId) {
	User user = null;
	
	try {
		Applicant applicant = ApplicantLocalServiceUtil.getApplicant(applicantId);
		
		user = UserLocalServiceUtil.fetchUser(applicant.getMappingUserId());
	} catch (Exception e) {
		
	}
	
	return user;
}
 
开发者ID:VietOpenCPS,项目名称:opencps-v2,代码行数:14,代码来源:ApplicantUtils.java

示例13: getType

import com.liferay.portal.kernel.service.UserLocalServiceUtil; //导入方法依赖的package包/类
@Override
public String getType(long id, ServiceContext serviceContext) {
	User user = UserLocalServiceUtil.fetchUser(id);

	Image image = ImageLocalServiceUtil.fetchImage(user.getPortraitId());

	String type = Validator.isNotNull(image) ? image.getType() : StringPool.BLANK;

	return type;
}
 
开发者ID:VietOpenCPS,项目名称:opencps-v2,代码行数:11,代码来源:UserActions.java

示例14: doGetDocument

import com.liferay.portal.kernel.service.UserLocalServiceUtil; //导入方法依赖的package包/类
@Override
	protected Document doGetDocument(Employee employee) throws Exception {
		Document document = getBaseModelDocument(CLASS_NAME, employee);

		document.addKeywordSortable(Field.COMPANY_ID, String.valueOf(employee.getCompanyId()));
		document.addDateSortable(Field.MODIFIED_DATE, employee.getModifiedDate());
		document.addKeywordSortable(Field.USER_ID, String.valueOf(employee.getUserId()));
		document.addKeywordSortable(Field.USER_NAME, String.valueOf(employee.getUserName()));

		document.addNumberSortable(EmployeeTerm.EMPLOYEE_ID, employee.getEmployeeId());

		document.addNumberSortable(EmployeeTerm.GROUP_ID, employee.getGroupId());
		document.addTextSortable(EmployeeTerm.TITLE, employee.getTitle());
		document.addTextSortable(EmployeeTerm.FULL_NAME, employee.getFullName());
		document.addTextSortable(EmployeeTerm.EMPLOYEE_NO, employee.getEmployeeNo());
		document.addNumberSortable(EmployeeTerm.GENDER, employee.getGender());
		document.addDateSortable(EmployeeTerm.BIRTH_DATE, employee.getBirthdate());
		document.addTextSortable(EmployeeTerm.TELNO, employee.getTelNo());
		document.addTextSortable(EmployeeTerm.MOBILE, employee.getMobile());
		document.addTextSortable(EmployeeTerm.EMAIL, employee.getEmail());
		document.addNumberSortable(EmployeeTerm.WORKING_STATUS, employee.getWorkingStatus());
		document.addNumberSortable(EmployeeTerm.MAPPING_USER_ID, employee.getMappingUserId());
		document.addNumberSortable(EmployeeTerm.MAIN_JOBPOST_ID, employee.getMainJobPostId());
		document.addDateSortable(EmployeeTerm.RECRUIT_DATE, employee.getRecruitDate());
		document.addDateSortable(EmployeeTerm.LEAVE_DATE, employee.getLeaveDate());
		
		EmployeeJobPos employeeJobPos = EmployeeJobPosLocalServiceUtil.fetchEmployeeJobPos(employee.getMainJobPostId());
//				employee.getGroupId(), employee.getEmployeeId(), employee.getMainJobPostId());
		
		long workingUnitId = Validator.isNotNull(employeeJobPos)?employeeJobPos.getWorkingUnitId():0;
		
		String workingUnitName = StringPool.BLANK;
		
		if(workingUnitId > 0){
			
			WorkingUnit workingUnit = WorkingUnitLocalServiceUtil.fetchWorkingUnit(workingUnitId);
			
			workingUnitName = Validator.isNotNull(workingUnit)?workingUnit.getName():StringPool.BLANK;
			
		}
		
		long emJobposId = Validator.isNotNull(employeeJobPos)?employeeJobPos.getJobPostId():0;
		
		
		JobPos jobPos = JobPosLocalServiceUtil.fetchJobPos(emJobposId);
		
		String jobPosTitle = Validator.isNotNull(jobPos)?jobPos.getTitle():StringPool.BLANK;
		
		document.addTextSortable(EmployeeTerm.WORKING_UNIT_NAME, workingUnitName);
		document.addNumberSortable(EmployeeTerm.WORKING_UNIT_ID, workingUnitId);
		
		document.addTextSortable(EmployeeTerm.JOB_POS_TITLE, jobPosTitle);
		document.addNumberSortable(EmployeeTerm.JOB_POS_ID, emJobposId);
		
		Calendar cal = Calendar.getInstance();

		if (Validator.isNotNull(employee.getBirthdate())) {
			cal.setTime(employee.getBirthdate());
			document.addNumberSortable(EmployeeTerm.MONTH, cal.get(Calendar.MONTH) + 1);
		} else {

			document.addNumberSortable(EmployeeTerm.MONTH, -1);

		}
		
		long userId = employee.getMappingUserId();
		
		int status = WorkflowConstants.STATUS_DENIED;
		
		if(userId > 0){
			
			User user = UserLocalServiceUtil.fetchUser(userId);
			
			status = Validator.isNotNull(user)?user.getStatus():WorkflowConstants.STATUS_DENIED;
			
		}
		
		document.addNumberSortable(EmployeeTerm.ACTIVE, status);
		
		return document;
	}
 
开发者ID:VietOpenCPS,项目名称:opencps-v2,代码行数:82,代码来源:EmployeeIndexer.java


注:本文中的com.liferay.portal.kernel.service.UserLocalServiceUtil.fetchUser方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。