📄 userservice.java
字号:
package com.redmoon.forum.person;
/**
* Title: 风青云[商城]
* Description:
* Copyright: Copyright (c) 2002
* Company: 船艇学院
* @author 风青云
* @version 1.0
*/
import cn.js.fan.security.*;
import javax.servlet.http.*;
import cn.js.fan.util.*;
import org.apache.log4j.Logger;
import com.redmoon.forum.ForumDb;
import com.redmoon.forum.OnlineUserDb;
import com.redmoon.forum.Privilege;
import com.redmoon.forum.plugin.ScoreMgr;
import com.redmoon.forum.plugin.ScoreUnit;
import com.redmoon.forum.plugin.base.IPluginScore;
import java.util.Iterator;
import java.util.Vector;
import com.redmoon.forum.security.IPMonitor;
import java.util.TimeZone;
import com.redmoon.forum.Authorization;
import cn.js.fan.web.SkinUtil;
import java.util.Locale;
import cn.js.fan.web.Global;
public class userservice {
Logger logger = Logger.getLogger(userservice.class.getName());
public userservice() {
}
public boolean AddFriend(HttpServletRequest request) throws ErrMsgException {
Privilege pvg = new Privilege();
if (!pvg.isUserLogin(request))
throw new ErrMsgException(SkinUtil.LoadString(request, "err_not_login"));
String name = pvg.getUser(request);
String friend = ParamUtil.get(request, "friend");
if (friend == null)
throw new ErrMsgException(SkinUtil.LoadString(request, "res.forum.person.userservice", "err_need_friend"));
if (name.equals(friend))
throw new ErrMsgException(SkinUtil.LoadString(request, "res.forum.person.userservice", "err_add_self"));
// throw new ErrMsgException("您不能把自己加为好友!");
UserFriendDb ufd = new UserFriendDb();
ufd.setName(name);
ufd.setFriend(friend);
boolean re = false;
try {
re = ufd.create();
}
catch (ResKeyException e) {
throw new ErrMsgException(e.getMessage(request));
}
return re;
}
public void setStayTime(HttpServletRequest req, HttpServletResponse res) throws
ErrMsgException {
HttpSession session = req.getSession(true);
Authorization auth = (Authorization)session.getAttribute(Privilege.SESSION_CWBBS_AUTH);
if (auth==null)
return;
auth.setStayTime(System.currentTimeMillis());
session.setAttribute(Privilege.SESSION_CWBBS_AUTH, auth);
OnlineUserDb ou = new OnlineUserDb();
ou = ou.getOnlineUserDb(auth.getName());
ou.setStayTime(new java.util.Date());
// 如果用户在线
if (ou.isLoaded()) {
ou.save();
} else {
// 如果不在线,即超时被刷新掉了,则再加入在线列表
int isguest = 0;
if (Privilege.isGuest(req))
isguest = 1;
ou.setName(auth.getName());
ou.setIp(req.getRemoteAddr());
ou.setGuest(isguest == 1 ? true : false);
ou.create();
// logger.info("setStayTime: create " + username + " isguest=" + isguest);
}
}
public long getStayTime(HttpServletRequest req) {
long st = 0;
Privilege pvg = new Privilege();
Authorization auth = pvg.getAuthorization(req);
if (auth!=null) {
st = auth.getStayTime();
}
return st;
}
public void refreshStayTime(HttpServletRequest req, HttpServletResponse res) throws
ErrMsgException {
long staytime = System.currentTimeMillis();
long t = (staytime - getStayTime(req)) / 300000; // (1000 * 60 * 5);
if (t > 5) {
// 大于5分钟则刷新
setStayTime(req, res);
}
}
public boolean isRegNameExist(HttpServletRequest req, String regName) throws
ErrMsgException {
if (regName == null || regName.trim().equals(""))
// throw new ErrMsgException("用户名不能为空!");
throw new ErrMsgException(SkinUtil.LoadString(req, "res.forum.person.userservice", "err_need_name"));
UserDb user = new UserDb();
user = user.getUser(regName);
if (user.isLoaded())
return true;
else
return false;
}
public boolean regist(HttpServletRequest req, HttpServletResponse res) throws
ErrMsgException {
ParamConfig pc = new ParamConfig("form_rule.xml");
ParamChecker pck = new ParamChecker(req);
try {
pck.doCheck(pc.getFormRule("regist"));
} catch (CheckErrException e) {
// 如果onError=exit,则会抛出异常
throw new ErrMsgException(e.getMessage());
}
String RegName = pck.getString("RegName");
if (RegName == null || RegName.trim().equals("")) {
throw new ErrMsgException(SkinUtil.LoadString(req, "res.forum.person.userservice", "err_need_name"));
}
String Password = pck.getString("Password").trim();
String Password2 = pck.getString("Password2").trim();
try {
Password = SecurityUtil.MD5(Password);
} catch (Exception e) {
logger.error("regist:" + e.getMessage());
}
String Question = pck.getString("Question");
String Answer = pck.getString("Answer");
String RealName = pck.getString("RealName");
String Career = pck.getString("Career");
String Gender = pck.getString("Gender");
String Job = pck.getString("Job");
String BirthYear = pck.getString("BirthYear");
String BirthMonth = pck.getString("BirthMonth");
String BirthDay = pck.getString("BirthDay");
String Birthday = BirthYear + "-" + BirthMonth + "-" + BirthDay;
int Marriage = pck.getInt("Marriage");
String Phone = pck.getString("Phone");
String Mobile = pck.getString("Mobile");
String State = pck.getString("State");
String City = pck.getString("City");
String Address = pck.getString("Address");
String PostCode = pck.getString("PostCode");
String IDCard = pck.getString("IDCard");
String RealPic = pck.getString("RealPic");
String Hobbies = pck.getString("Hobbies");
String Email = pck.getString("Email");
String OICQ = pck.getString("OICQ");
String sign = pck.getString("Content");
String ip = pck.getString("ip");
boolean secret = pck.getBoolean("isSecret");
String home = pck.getString("home");
String msn = pck.getString("msn");
String locale = pck.getString("locale");
String tzID = pck.getString("timeZone");
TimeZone tz = TimeZone.getTimeZone(tzID);
IPMonitor im = new IPMonitor();
if (!im.isValid(req, ip)) {
throw new ErrMsgException(im.getMessage());
}
ForumDb fd = new ForumDb();
fd = fd.getForumDb();
fd.FilterUserName(req, RegName);
UserDb user = new UserDb();
user.setName(RegName);
user.setPwdMd5(Password);
user.setRawPwd(Password2);
user.setQuestion(Question);
user.setAnswer(Answer);
user.setRealName(RealName);
user.setCareer(Career);
user.setGender(Gender);
user.setJob(Job);
try {
user.setBirthday(DateUtil.parse(Birthday, "yyyy-MM-dd"));
} catch (Exception e) {
logger.error("regist:" + e.getMessage());
}
user.setMarriage(Marriage);
user.setPhone(Phone);
user.setMobile(Mobile);
user.setState(State);
user.setCity(City);
user.setAddress(Address);
user.setPostCode(PostCode);
user.setIDCard(IDCard);
user.setRealPic(RealPic);
user.setHobbies(Hobbies);
user.setEmail(Email);
user.setOicq(OICQ);
user.setSign(sign);
user.setSecret(secret);
user.setIp(ip);
user.setTimeZone(tz);
user.setHome(home);
user.setMsn(msn);
user.setLocale(locale);
// 置经验、信用、金币等初值
ScoreMgr sm = new ScoreMgr();
Vector v = sm.getAllScore();
Iterator ir = v.iterator();
while (ir.hasNext()) {
ScoreUnit su = (ScoreUnit) ir.next();
IPluginScore ips = su.getScore();
// 判别类是否存在
if (ips != null)
ips.regist(user);
}
boolean re = user.create();
if (re) {
Privilege privilege = new Privilege();
privilege.doLogin(req, res, user.getUser(RegName));
}
return re;
}
public boolean editmyinfo(HttpServletRequest req,
HttpServletResponse response) throws
ErrMsgException {
ParamConfig pc = new ParamConfig("form_rule.xml");
ParamChecker pck = new ParamChecker(req);
try {
pck.doCheck(pc.getFormRule("user_modify"));
} catch (CheckErrException e) {
// 如果onError=exit,则会抛出异常
throw new ErrMsgException(e.getMessage());
}
String RegName = pck.getString("RegName");
if (RegName == null || RegName.trim().equals("")) {
throw new ErrMsgException(SkinUtil.LoadString(req, "res.forum.person.userservice", "err_need_name"));
}
String Password = pck.getString("Password").trim();
String Password2 = pck.getString("Password2").trim();
if (!Password.equals("")) {
try {
Password = SecurityUtil.MD5(Password);
} catch (Exception e) {
logger.error("editmyinfo:" + e.getMessage());
}
}
String Question = pck.getString("Question");
String Answer = pck.getString("Answer");
String RealName = pck.getString("RealName");
String Career = pck.getString("Career");
String Gender = pck.getString("Gender");
String Job = pck.getString("Job");
String BirthYear = pck.getString("BirthYear");
String BirthMonth = pck.getString("BirthMonth");
String BirthDay = pck.getString("BirthDay");
String Birthday = BirthYear + "-" + BirthMonth + "-" + BirthDay;
int Marriage = pck.getInt("Marriage");
String Phone = pck.getString("Phone");
String Mobile = pck.getString("Mobile");
String State = pck.getString("State");
String City = pck.getString("City");
String Address = pck.getString("Address");
String PostCode = pck.getString("PostCode");
String IDCard = pck.getString("IDCard");
String RealPic = pck.getString("RealPic");
String Hobbies = pck.getString("Hobbies");
String Email = pck.getString("Email");
String OICQ = pck.getString("OICQ");
String sign = pck.getString("Content");
boolean secret = pck.getBoolean("isSecret");
String tzID = pck.getString("timeZone");
TimeZone tz = TimeZone.getTimeZone(tzID);
String home = pck.getString("home");
String msn = pck.getString("msn");
String locale = pck.getString("locale");
UserDb user = new UserDb();
user = user.getUser(RegName);
if (!Password.equals(""))
user.setPwdMd5(Password);
user.setQuestion(Question);
user.setAnswer(Answer);
user.setRealName(RealName);
user.setCareer(Career);
user.setGender(Gender);
user.setJob(Job);
try {
user.setBirthday(DateUtil.parse(Birthday, "yyyy-MM-dd"));
} catch (Exception e) {
logger.error("editmyinfo:" + e.getMessage());
}
user.setMarriage(Marriage);
user.setPhone(Phone);
user.setMobile(Mobile);
user.setState(State);
user.setCity(City);
user.setAddress(Address);
user.setPostCode(PostCode);
user.setIDCard(IDCard);
user.setRealPic(RealPic);
user.setEmail(Email);
user.setOicq(OICQ);
user.setHobbies(Hobbies);
user.setSign(sign);
if (!Password2.equals("")) {
user.setRawPwd(Password2);
}
user.setSecret(secret);
user.setTimeZone(tz);
user.setHome(home);
user.setMsn(msn);
user.setLocale(locale);
boolean re = user.save();
if (re) {
// 取得用户的locale
if (!locale.equals("")) {
String[] ary = StrUtil.split(locale, "_");
if (ary != null && ary.length == 2) {
Locale loc = new Locale(ary[0], ary[1]);
HttpSession session = req.getSession(true);
session.setAttribute(SkinUtil.SESSION_LOCALE, loc);
}
} else {
HttpSession session = req.getSession(true);
session.removeAttribute(SkinUtil.SESSION_LOCALE);
}
}
return re;
}
public boolean ModifyPWD(HttpServletResponse response, String username,
String pwd, String privurl) throws ErrMsgException {
String Password = "";
try {
Password = SecurityUtil.MD5(pwd);
} catch (Exception e) {
logger.error(e.getMessage());
}
UserDb user = new UserDb();
user = user.getUser(username);
user.setPwdMd5(Password);
user.setRawPwd(pwd);
return user.save();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -