package com.snda.mzang.tvtogether.server.handler.processor;
import java.util.Date;
import org.json.JSONObject;
import com.snda.mzang.tvtogether.base.B;
import com.snda.mzang.tvtogether.base.JSONUtil;
import com.snda.mzang.tvtogether.server.dao.UserInfoDao;
import com.snda.mzang.tvtogether.server.entry.UserInfo;
import com.snda.mzang.tvtogether.server.entry.UserInfo.UserStatus;
import com.snda.mzang.tvtogether.server.protocol.IMessageProcessor;
import com.snda.mzang.tvtogether.server.util.EntryId;
import com.snda.mzang.tvtogether.server.util.JSONConverter;
public class Login implements IMessageProcessor {
UserInfoDao userInfoDao = UserInfoDao.getInstance();
public String getProcessorName() {
return B.login;
}
public byte[] handle(JSONObject msg) {
JSONObject ret = new JSONObject();
String userName = JSONUtil.getString(msg, B.username);
String password = JSONUtil.getString(msg, B.password);
boolean regNewUser = JSONUtil.getBoolean(msg, B.regNewUser);
UserInfo userInfo = new UserInfo();
userInfo.setUserName(userName);
userInfo.setUserPassword(password);
UserInfo loginUser = userInfoDao.login(userInfo);
try {
if (loginUser != null) {
JSONConverter.convertBeanToJSON(loginUser, ret, null);
ret.put(B.result, B.success);
} else if (regNewUser == true) {
if (userInfoDao.selectUserByName(userName) != null) {
ret.put(B.result, B.fail);
ret.put(B.failMsg, "用户名" + userName + "已存在");
} else {
String userId = EntryId.USER.getUUID();
userInfo.setRegisterTime(new Date());
userInfo.setStatus(UserStatus.ENABLE.getStatus());
userInfo.setIcon(B.defaultIcon);
userInfo.setComments("还没填写Comment。");
userInfo.setFavor("");
userInfo.setLastLogin(new Date());
userInfo.setLocationX(0.0);
userInfo.setLocationY(0.0);
userInfo.setId(userId);
boolean retInsert = userInfoDao.insertUser(userInfo);
if (retInsert == true) {
JSONConverter.convertBeanToJSON(userInfo, ret, null);
ret.put(B.result, B.success);
} else {
ret.put(B.result, B.fail);
ret.put(B.failMsg, "注册新用户失败");
}
}
} else {
ret.put(B.failMsg, "用户名密码错误或用户不存在");
ret.put(B.result, B.fail);
}
} catch (Exception e) {
e.printStackTrace();
}
return ret.toString().getBytes();
}
}