?? dlogaction.java
字號:
* @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());
}
}
//判斷圖像的大小并根據(jù)需要進行調(diào)整
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);
// 執(zhí)行登錄過程
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());
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -