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

📄 dlogaction.java

📁 一个简单的blog系统
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 * @wml_only modify_homepage.vm
	 */
	protected ActionForward doUpdateHomePage(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		UserForm user = (UserForm) form;
		super.validateClientId(request, user);
		ActionMessages msgs = new ActionMessages();
		
		while (msgs.isEmpty()) {
			UserBean loginUser = super.getLoginUser(request, response);
			if(loginUser == null) {
				msgs.add("user", new ActionMessage("error.user_not_login"));
				break;
			}
			if(loginUser.getId() != user.getId()){
				msgs.add("user", new ActionMessage("error.access_deny"));
				break;
			}
			UserBean ubean = UserDAO.getUserByID(user.getId());
			if (ubean == null || ubean.getStatus()!=UserBean.STATUS_NORMAL) {
				msgs.add("id", new ActionMessage("error.user_not_available",
						new Integer(user.getId())));
				break;
			}
			if (!StringUtils.equals(ubean.getPassword(), user
					.getPassword())){
				msgs.add("password",
						new ActionMessage("error.user_auth_failed"));
				break;
			}
			if(!StringUtils.equals(user.getHomePage(), ubean.getHomePage())){
				ubean.setHomePage(user.getHomePage());
				try {
					DLOGUserManager.update(ubean);
					//更新session中的用户资料
					UserLoginManager.updateLoginUser(request, ubean);		
				} catch (Exception e) {
					msgs.add("result", new ActionMessage("error.database", e
							.getMessage()));
				}
			}
			break;
		}

		if (!msgs.isEmpty()) {
			saveMessages(request, msgs);
			return mapping.findForward("edituser");
		}

		StringBuffer ext = new StringBuffer();
		ext.append("uid=");
		ext.append(user.getId());
		return makeForward(mapping.findForward("viewuser"), user.getSid(), ext.toString());
	}

	/**
	 * 修改用户的QQ(WML)
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 * @wml_only modify_qq.vm
	 */
	protected ActionForward doUpdateQQ(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		UserForm user = (UserForm) form;
		super.validateClientId(request, user);
		ActionMessages msgs = new ActionMessages();
		
		while (msgs.isEmpty()) {
			UserBean loginUser = super.getLoginUser(request, response);
			if(loginUser == null) {
				msgs.add("user", new ActionMessage("error.user_not_login"));
				break;
			}
			if(loginUser.getId() != user.getId()){
				msgs.add("user", new ActionMessage("error.access_deny"));
				break;
			}
			UserBean ubean = UserDAO.getUserByID(user.getId());
			if (ubean == null || ubean.getStatus()!=UserBean.STATUS_NORMAL) {
				msgs.add("id", new ActionMessage("error.user_not_available",
						new Integer(user.getId())));
				break;
			}
			if (!StringUtils.equals(ubean.getPassword(), user
					.getPassword())){
				msgs.add("password",
						new ActionMessage("error.user_auth_failed"));
				break;
			}
			if(!StringUtils.equals(user.getQq(), ubean.getQq()) && StringUtils.isNumeric(user.getQq())){
				ubean.setQq(user.getQq());
				try {
					DLOGUserManager.update(ubean);
					//更新session中的用户资料
					UserLoginManager.updateLoginUser(request, ubean);		
				} catch (Exception e) {
					msgs.add("result", new ActionMessage("error.database", e
							.getMessage()));
				}
			}
			break;
		}

		if (!msgs.isEmpty()) {
			saveMessages(request, msgs);
			return mapping.findForward("edituser");
		}

		StringBuffer ext = new StringBuffer();
		ext.append("uid=");
		ext.append(user.getId());
		return makeForward(mapping.findForward("viewuser"), user.getSid(), ext.toString());
	}
	
	/**
	 * 用户资料更新
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	protected ActionForward doUpdate(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		UserForm user = (UserForm) form;
		super.validateClientId(request, user);
		ActionMessages msgs = new ActionMessages();
		// 验证用户资料表单
		user.validateUserForm(request, msgs, false);
		
		while (msgs.isEmpty()) {
			UserBean loginUser = super.getLoginUser(request, response);
			if(loginUser == null) {
				msgs.add("user", new ActionMessage("error.user_not_login"));
				break;
			}
			if(loginUser.getId() != user.getId()){
				msgs.add("user", new ActionMessage("error.access_deny"));
				break;
			}
			UserBean ubean = UserDAO.getUserByID(user.getId());
			if (ubean == null || ubean.getStatus()!=UserBean.STATUS_NORMAL) {
				msgs.add("id", new ActionMessage("error.user_not_available",
						new Integer(user.getId())));
				break;
			}
			if (!StringUtils.equals(ubean.getPassword(), user
					.getPassword())){
				msgs.add("password",
						new ActionMessage("error.user_auth_failed"));
				break;
			}
			ubean.setNickname(super.autoFiltrate(null, user.getNickname()));
			if(user.getBirth()!=null && user.getBirth().before(new Date()))
				ubean.setBirth(user.getBirth());
			else if(ubean.getBirth()!=null)
				ubean.setBirth(null);
			ubean.setSex(user.getSex());
			if (StringUtils.isNotEmpty(user.getResume()))
				ubean.setResume(super.autoFiltrate(null, StringUtils.extractText(user.getResume())));
			else
				ubean.setResume(null);
			if (!StringUtils.equals(ubean.getPassword(), user.getPassword2())
					&& StringUtils.isNotEmpty(user.getPassword2()))
				ubean.setPassword(user.getPassword2());
			if (StringUtils.isNotEmpty(user.getEmail()))
				ubean.setEmail(user.getEmail());
			else
				ubean.setEmail(null);
			if (StringUtils.isNotEmpty(user.getHomePage()))
				ubean.setHomePage(user.getHomePage());
			else
				ubean.setHomePage(null);
			if (StringUtils.isNotEmpty(user.getMobile()))
				ubean.setMobile(user.getMobile());
			else
				ubean.setMobile(null);
			if (StringUtils.isNotEmpty(user.getMsn()))
				ubean.setMsn(user.getMsn());
			else
				ubean.setMsn(null);
			if (StringUtils.isNotEmpty(user.getQq()))
				ubean.setQq(user.getQq());
			else
				ubean.setQq(null);
			if(!StringUtils.equals(ubean.getProvince(), user.getProvince()))
				ubean.setProvince(user.getProvince());
			
			if(!StringUtils.equals(ubean.getCity(), user.getCity()))
				ubean.setCity(user.getCity());
			
			if(user.getRemovePortrait()==1)
				ubean.setPortrait(null);
			else{
				String portrait_uri = handleUserPortrait(ubean.getId(), user.getPortrait());
				if(StringUtils.isNotEmpty(portrait_uri))
					ubean.setPortrait(portrait_uri);
			}
			try {
				DLOGUserManager.update(ubean);
				//更新session中的用户资料
				UserLoginManager.updateLoginUser(request, ubean);		
			} catch (Exception e) {
				msgs.add("result", new ActionMessage("error.database", e
						.getMessage()));
			}
			
			break;
		}

		if (!msgs.isEmpty()) {
			saveMessages(request, msgs);
			return mapping.findForward("edituser");
		}

		StringBuffer ext = new StringBuffer();
		ext.append("uid=");
		ext.append(user.getId());
		return makeForward(mapping.findForward("viewuser"), user.getSid(), ext.toString());
	}
	
	private String getPortraitPath(String uri){
		initPortraitPath();
		StringBuffer path = new StringBuffer(g_portrait_path);
		path.append(StringUtils.replace(uri, "/", File.separator));
		return path.toString();
	}
	
	private final static Object sync_portrait_upload = new Object();
	/**
	 * 处理用户上传的头像
	 * @param pFile
	 * @return
	 * @throws IOException 
	 */
	private String handleUserPortrait(int userid, FormFile pFile) throws IOException{
		if(pFile==null)
			return null;
		//获取图像的扩展名
		String extendName = StringUtils.getFileExtend(pFile.getFileName());
		if(StringUtils.isEmpty(extendName))
			return null;
		//判断是否为图像文件
		if(!ImageUtils.isImage(extendName))
			return null;
		extendName = extendName.toLowerCase();
		//计算图像存放的路径
		StringBuffer fileName = new StringBuffer();
		fileName.append(userid / 10000);
		fileName.append('/');
		fileName.append(userid);
		fileName.append('.');
		fileName.append(extendName);
		String img_path = getPortraitPath(fileName.toString());
		File img = new File(img_path);
		File img_dir = img.getParentFile();
		if(!img_dir.exists()){
			synchronized(sync_portrait_upload){
				if(!img_dir.mkdirs())
					throw new IOException("Cannot make directory: " + img_dir.getParent());
			}
		}
		//判断图像的大小并根据需要进行调整
		BufferedImage orig_portrait = (BufferedImage)ImageIO.read(pFile.getInputStream());
		int preview_width = Math.min(PORTRAIT_WIDTH, orig_portrait.getWidth());
		int preview_height= Math.min(PORTRAIT_HEIGHT,orig_portrait.getHeight());
		if(preview_width != orig_portrait.getWidth() || preview_height!=orig_portrait.getHeight()){
			ImageUtils.createPreviewImage(pFile.getInputStream(), img_path,
					preview_width, preview_height);
		}
		else{
			ImageUtils.writeToFile(pFile, img_path);
		}
		return fileName.toString();
	}
	
	/**
	 * 用户注册
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 * @see com.liusoft.dlog4j.action.UserAction#doCreate(ActionMapping, ActionForm, HttpServletRequest, HttpServletResponse)
	 */
	protected ActionForward doCreateUser(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception 
	{
		UserForm user = (UserForm) form;
		super.validateClientId(request, user);
		ActionMessages msgs = new ActionMessages();
		// 验证用户注册表单
		user.validateUserForm(request, msgs, true);
		if (msgs.isEmpty()) {
			UserBean ubean = user.formToBean();
			try {
				ubean.setLastAddr(request.getRemoteAddr());
				ubean.setMobile(RequestUtils.getRequestMobile(request));
				ubean.setResume(super.filterScriptAndStyle(ubean.getResume()));
				DLOGUserManager.create(ubean);
				// 执行登录过程
				UserLoginManager.loginUser(request, response, ubean, user.getKeepDays());
			} catch (Exception e) {
				msgs.add("result", new ActionMessage("error.database", e.getMessage()));
			}
		} else {
			saveMessages(request, msgs);
			return mapping.findForward("reg");
		}

		String fromPage = user.getFromPage();
		
		if (StringUtils.isNotEmpty(fromPage))
			return new ActionForward(fromPage, true);
		
		if(user.getSid()>0)
			return makeForward(mapping.findForward("main"), user.getSid());
		
		return mapping.findForward("home");
	}

	/**
	 * 修改用户的头像(WML)
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 * @wml_only modify_portrait.vm
	 */
	protected ActionForward doUpdatePortrait(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		UserForm user = (UserForm) form;
		super.validateClientId(request, user);
		ActionMessages msgs = new ActionMessages();
		
		while (msgs.isEmpty()) {
			UserBean loginUser = super.getLoginUser(request, response);
			if(loginUser == null) {
				msgs.add("user", new ActionMessage("error.user_not_login"));
				break;
			}
			if(loginUser.getId() != user.getId()){
				msgs.add("user", new ActionMessage("error.access_deny"));
				break;
			}
			UserBean ubean = UserDAO.getUserByID(user.getId());
			if (ubean == null || ubean.getStatus()!=UserBean.STATUS_NORMAL) {
				msgs.add("id", new ActionMessage("error.user_not_available",
						new Integer(user.getId())));
				break;
			}
			if (!StringUtils.equals(ubean.getPassword(), user
					.getPassword())){
				msgs.add("password",
						new ActionMessage("error.user_auth_failed"));
				break;
			}
			if(user.getRemovePortrait()==1)
				ubean.setPortrait(null);
			else{
				String portrait_uri = handleUserPortrait(ubean.getId(), user.getPortrait());
				if(StringUtils.isNotEmpty(portrait_uri))
					ubean.setPortrait(portrait_uri);
			}
			try {
				DLOGUserManager.update(ubean);
				//更新session中的用户资料
				UserLoginManager.updateLoginUser(request, ubean);		
			} catch (Exception e) {
				msgs.add("result", new ActionMessage("error.database", e.getMessage()));
			}
			
			break;
		}

		if (!msgs.isEmpty()) {
			saveMessages(request, msgs);
			return mapping.findForward("edituser");
		}

		StringBuffer ext = new StringBuffer();
		ext.append("uid=");
		ext.append(user.getId());
		return makeForward(mapping.findForward("viewuser"), user.getSid(), ext.toString());
	}

}

⌨️ 快捷键说明

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