package com.jshop.action.app;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import java.util.Locale;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import com.jshop.action.app.vo.RequestMemberTMsg;
import com.jshop.action.app.vo.RequestMsg;
import com.jshop.action.backstage.utils.BaseTools;
import com.jshop.action.backstage.utils.GsonJson;
import com.jshop.action.backstage.utils.MD5Code;
import com.jshop.action.backstage.utils.statickey.StaticKey;
import com.jshop.entity.MemberT;
import com.jshop.entity.UserT;
import com.jshop.service.MemberTService;
import com.jshop.service.impl.Serial;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
/**
* @author Administrator
*
*/
@Namespace("/app")
@ParentPackage("jshop")
public class MemberT4AppAction extends ActionSupport implements
ServletRequestAware, ServletResponseAware {
@Resource
private MemberTService memberTService;
@Resource
private Serial serial;
private HttpServletRequest request;
private HttpServletResponse response;
private String loginname;
private String loginpwd;
private String sucflag;
public HttpServletRequest getRequest() {
return request;
}
public void setRequest(HttpServletRequest request) {
this.request = request;
}
public HttpServletResponse getResponse() {
return response;
}
public void setResponse(HttpServletResponse response) {
this.response = response;
}
public String getSucflag() {
return sucflag;
}
public void setSucflag(String sucflag) {
this.sucflag = sucflag;
}
public void setServletRequest(HttpServletRequest request) {
this.request=request;
}
public void setServletResponse(HttpServletResponse response) {
this.response=response;
}
public String getLoginname() {
return loginname;
}
public void setLoginname(String loginname) {
this.loginname = loginname;
}
public String getLoginpwd() {
return loginpwd;
}
public void setLoginpwd(String loginpwd) {
this.loginpwd = loginpwd;
}
/**
* 清理错误
*/
@Override
public void validate() {
this.clearErrorsAndMessages();
}
/**
* 手机端注册
* @return
* @throws IOException
*/
@Action(value="register4App")
public void register4App() throws IOException{
RequestMsg rm=new RequestMsg();
if(StringUtils.isNotBlank(this.getLoginname())&&StringUtils.isNotBlank(this.getLoginpwd())){
List<MemberT>m1=memberTService.findMemberTByloginname(this.getLoginname().toLowerCase(Locale.CHINA));
if(m1!=null&&m1.size()>0){
rm.setMsg(StaticKey.MEMBER_EXIST);
rm.setSucflag(false);
}else{
MD5Code md5 = new MD5Code();
MemberT m=new MemberT();
m.setId(serial.Serialid(Serial.MEMBER));
m.setMid(md5.getMD5ofStr(m.getId()));
m.setLoginname(this.getLoginname().trim());
m.setLoginpwd(md5.getMD5ofStr(this.getLoginpwd().trim()));
m.setNick(StaticKey.EMPTY);
m.setMemberstate(StaticKey.MEMBERSTATE_ONE_NUM);
m.setHeadpath("#");
m.setCreatetime(BaseTools.systemtime());
m.setVersiont(1);
m.setIntegration(0);
m.setUpdatetime(m.getCreatetime());
memberTService.save(m);
rm.setSucflag(true);
rm.setMsg(StaticKey.MEMBER_REGISTER_SUCCESS);
//将手机端注册的用户直接放入内存,直接可登录
ActionContext.getContext().getSession().put(StaticKey.MEMBER_SESSION_KEY, m);
}
}
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter out=response.getWriter();
out.write(GsonJson.parseDataToJson(rm));
out.flush();
out.close();
}
/**
* app登录
* @throws IOException
*/
@Action(value="login4App")
public void login4App() throws IOException{
MemberT m=(MemberT) ActionContext.getContext().getSession().get(StaticKey.MEMBER_SESSION_KEY);
if(m!=null){
ActionContext.getContext().getSession().remove(StaticKey.MEMBER_SESSION_KEY);
}
RequestMemberTMsg rm=new RequestMemberTMsg();
MD5Code md5=new MD5Code();
MemberT memberT=new MemberT();
memberT.setLoginname(this.getLoginname().trim());
memberT.setLoginpwd(md5.getMD5ofStr(this.getLoginpwd().trim()));
memberT.setMemberstate(StaticKey.MEMBERSTATE_ONE_NUM);
List<MemberT>mlists=memberTService.login(memberT);
if (!mlists.isEmpty()) {
rm.setSucflag(true);
rm.setM(mlists.get(0));
ActionContext.getContext().getSession().put(StaticKey.MEMBER_SESSION_KEY, mlists.get(0));
}
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter out=response.getWriter();
out.write(GsonJson.parseDataToJson(rm));
out.flush();
out.close();
}
}