package com.xc.controller; import com.xc.common.ServerResponse; import com.xc.pojo.User; import com.xc.service.IUserService; import com.xc.utils.Md5Utils; import com.xc.utils.PropertiesUtil; import com.xc.utils.TokenUtils; import com.xc.utils.redis.CookieUtils; import com.xc.utils.redis.JsonUtil; import com.xc.utils.redis.RedisConst; import com.xc.utils.redis.RedisShardedPoolUtils; import com.xc.vo.user.UserLoginResultVO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import redis.clients.jedis.JedisCluster; import java.util.Date; @Controller @RequestMapping({"/api/user/"}) public class UserApiController { private static final Logger log = LoggerFactory.getLogger(UserApiController.class); @Autowired IUserService iUserService; //注册 @RequestMapping(value = {"reg.do"}, method = {RequestMethod.POST}) @ResponseBody public ServerResponse reg(@RequestParam("agentCode") String agentCode, @RequestParam("phone") String phone, @RequestParam(value = "yzmCode", defaultValue = "") String yzmCode, @RequestParam("userPwd") String userPwd, HttpServletRequest httpServletRequest) { return this.iUserService.reg(yzmCode, agentCode, phone, userPwd, httpServletRequest); } //登录 @RequestMapping(value = {"login.do"}, method = {RequestMethod.POST}) @ResponseBody public ServerResponse login(@RequestParam("phone") String phone, @RequestParam("userPwd") String userPwd, HttpServletRequest request, HttpServletResponse response) throws Exception { // String pc_cookie_name = PropertiesUtil.getProperty("user.cookie.name"); ServerResponse serverResponse = this.iUserService.login(phone, userPwd, request); if (serverResponse.isSuccess()) { // CookieUtils.writeLoginToken(response, token, pc_cookie_name); // String redisSetExResult = RedisShardedPoolUtils.setEx(token, JsonUtil.obj2String(serverResponse.getData()), 5400); // Long a = RedisShardedPoolUtils.expire(token,10); // System.out.println(a+"u1s1"); // log.info("redis setex user result : {}", redisSetExResult); User user = (User) serverResponse.getData(); // String tokenKey = RedisConst.getTokenRedisKey(user.getId()); String token = TokenUtils.token(user.getPhone(), user.getUserPwd()); UserLoginResultVO resultVO = new UserLoginResultVO(); // resultVO.setKey(pc_cookie_name); resultVO.setToken(token); RedisShardedPoolUtils.setEx(token, JsonUtil.obj2String(serverResponse.getData()), 5400); return ServerResponse.createBySuccess("登陆成功", resultVO); } return serverResponse; } //注销 @RequestMapping({"logout.do"}) @ResponseBody public ServerResponse logout(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // String cookie_name = PropertiesUtil.getProperty("user.cookie.name"); // String logintoken = CookieUtils.readLoginToken(httpServletRequest, cookie_name); // log.info("用户 token = {} ,退出登陆", logintoken); // CookieUtils.delLoginToken(httpServletRequest, httpServletResponse, cookie_name); String token = httpServletRequest.getHeader("token"); RedisShardedPoolUtils.del(token); return ServerResponse.createBySuccess(); } //查询手机号是否存在 @RequestMapping({"checkPhone.do"}) @ResponseBody public ServerResponse checkPhone(String phoneNum,@RequestParam(value = "num",defaultValue = "0")int num) { return this.iUserService.checkPhone(phoneNum,num); } //找回密码 @RequestMapping({"updatePwd.do"}) @ResponseBody public ServerResponse updatePwd(String phoneNum, String code, String newPwd) { return this.iUserService.updatePwd(phoneNum, code, newPwd); } }