⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userwebserviceimpl.java

📁 SpringSide开源代码
💻 JAVA
字号:
package org.springside.examples.miniservice.ws.user;

import java.util.ArrayList;
import java.util.List;

import javax.jws.WebService;

import org.apache.commons.lang.StringUtils;
import org.apache.cxf.feature.Features;
import org.springframework.beans.factory.annotation.Required;
import org.springside.examples.miniservice.entity.user.User;
import org.springside.examples.miniservice.service.user.UserManager;
import org.springside.examples.miniservice.ws.Constants;
import org.springside.examples.miniservice.ws.WSResult;
import org.springside.examples.miniservice.ws.user.dto.CreateUserResult;
import org.springside.examples.miniservice.ws.user.dto.GetAllUserResult;
import org.springside.examples.miniservice.ws.user.dto.GetUserResult;
import org.springside.examples.miniservice.ws.user.dto.UserDTO;
import org.springside.modules.webservice.WebServiceSupport;

/**
 * WebService实现类.
 * 
 * @WebService的endpointInterface属性指向Interface定义类.
 * @WebService的serviceName与portName属性指明WSDL中的名称.
 * CXF的@Features指定将出入的SOAP XML写入日志.
 * 
 * @author sky
 * @author calvin
 */
@WebService(serviceName = "UserWebService", portName = "UserWebServicePort", endpointInterface = "org.springside.examples.miniservice.ws.user.UserWebService", targetNamespace = Constants.NS)
@Features(features = "org.apache.cxf.feature.LoggingFeature")
public class UserWebServiceImpl extends WebServiceSupport implements UserWebService {

	private UserManager userManager;

	/**
	 * @see UserWebService#getAllUser()
	 */
	public GetAllUserResult getAllUser() {
		GetAllUserResult result = new GetAllUserResult();

		try {
			List<User> userList = userManager.getAllUser();
			List<UserDTO> userDTOList = new ArrayList<UserDTO>();
			for (User userEntity : userList) {
				userDTOList.add((UserDTO) dozer.map(userEntity, UserDTO.class));
			}
			result.setUserList(userDTOList);
		} catch (RuntimeException e) {
			logger.error(e.getMessage(), e);
			result.systemError();
		}
		return result;
	}

	/**
	 * @see UserWebService#getUser(Long)
	 */
	public GetUserResult getUser(Long userId) {
		GetUserResult result = new GetUserResult();

		try {
			//校验请求参数
			if (userId == null) {
				result.setResult(WSResult.PARAMETER_ERROR, "userId参数为空");
				logger.warn(result.getMessage());
				return result;
			}

			// 获取User
			User userEnity = userManager.getUser(userId);
			if (userEnity == null) {
				result.setResult(WSResult.USER_NOT_EXIST_ERROR, "帐号ID:" + userId + "不存在");
				logger.warn(result.getMessage());
				return result;
			}

			// 从User转换到UserDTO
			UserDTO dto = (UserDTO) dozer.map(userEnity, UserDTO.class);
			result.setUser(dto);
		} catch (RuntimeException e) {
			logger.error(e.getMessage(), e);
			result.systemError();
		}
		return result;
	}

	/**
	 * @see UserWebService#createUser(UserDTO)
	 */
	public CreateUserResult createUser(UserDTO user) {
		CreateUserResult result = new CreateUserResult();
		try {
			//校验请求参数
			if (user == null) {
				result.setResult(WSResult.PARAMETER_ERROR, "user参数为空");
				logger.warn(result.getMessage());
				return result;
			}

			// 从DTO转换到User
			User userEntity = (User) dozer.map(user, User.class);

			// 保存User
			userManager.saveUser(userEntity);
			result.setUserId(userEntity.getId());
		} catch (RuntimeException e) {
			logger.error(e.getMessage(), e);
			result.systemError();
		}
		return result;
	}

	/**
	 * @see UserWebService#authUser(String, String)
	 */
	public WSResult authUser(String loginName, String password) {

		WSResult result = new WSResult();
		try {
			if (StringUtils.isBlank(loginName) || StringUtils.isBlank(password)) {
				result.setResult(WSResult.PARAMETER_ERROR, "用户名或密码为空");
				logger.warn(result.getMessage());
				return result;
			}

			if (!userManager.auth(loginName, password)) {
				result.setCode(WSResult.FALSE);
			}
		} catch (RuntimeException e) {
			logger.error(e.getMessage(), e);
			result.systemError();
		}
		return result;
	}

	@Required
	public void setUserManager(UserManager userManager) {
		this.userManager = userManager;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -