package com.nq.controller;
|
|
|
import com.nq.common.ServerResponse;
|
|
import com.nq.pojo.SiteSpread;
|
import com.nq.service.ISiteSpreadService;
|
import com.nq.service.IUserService;
|
|
import com.nq.utils.PropertiesUtil;
|
|
import com.nq.utils.redis.CookieUtils;
|
|
import com.nq.utils.redis.JsonUtil;
|
|
import com.nq.utils.redis.RedisConst;
|
|
import com.nq.utils.redis.RedisShardedPoolUtils;
|
|
import com.nq.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 java.math.BigDecimal;
|
|
|
@Controller
|
@RequestMapping({"/api/user/"})
|
public class UserApiController {
|
private static final Logger log = LoggerFactory.getLogger(UserApiController.class);
|
|
@Autowired
|
IUserService iUserService;
|
|
@Autowired
|
ISiteSpreadService iSiteSpreadService;
|
//注册
|
@RequestMapping(value = {"reg.do"}, method = {RequestMethod.POST})
|
@ResponseBody
|
public ServerResponse reg(@RequestParam("agentCode") String agentCode,
|
@RequestParam("phone") String phone,
|
@RequestParam("userPwd") String userPwd,
|
@RequestParam("phoneCode")String phoneCode,
|
HttpServletRequest httpServletRequest) {
|
return this.iUserService.reg(agentCode, phone,phoneCode, userPwd,httpServletRequest);
|
}
|
|
@RequestMapping(value = {"sendMailCode.do"}, method = {RequestMethod.POST})
|
@ResponseBody
|
public ServerResponse sendMailCode(@RequestParam("email") String email) {
|
try {
|
if (email == null || email.isEmpty()) { // 判断email参数是否为空
|
return ServerResponse.createByErrorMsg("邮箱不能为空");
|
}
|
log.info("-------->发送邮件");
|
return this.iUserService.sendMailCode(email);
|
} catch (Exception e) {
|
e.printStackTrace();
|
return ServerResponse.createByErrorMsg("发送失败,发生异常");
|
}
|
}
|
|
@RequestMapping(value = {"sendSms.do"}, method = {RequestMethod.POST})
|
@ResponseBody
|
public ServerResponse sendSms(@RequestParam("phone") String phone,HttpServletRequest request) {
|
try {
|
if (phone == null || phone.isEmpty()) {
|
return ServerResponse.createByErrorMsg("手机号不能为空",request);
|
}
|
log.info("-------->发送短信");
|
return this.iUserService.sendSms(phone,request);
|
} catch (Exception e) {
|
e.printStackTrace();
|
return ServerResponse.createByErrorMsg("发送失败,发生异常");
|
}
|
}
|
|
|
//登录
|
@RequestMapping(value = {"login.do"}, method = {RequestMethod.POST})
|
@ResponseBody
|
public ServerResponse login(@RequestParam("phone") String phone, @RequestParam("userPwd") String userPwd, HttpSession httpSession, HttpServletRequest request, HttpServletResponse response) {
|
String pc_cookie_name = PropertiesUtil.getProperty("user.cookie.name");
|
String token = RedisConst.getUserRedisKey(httpSession.getId());
|
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()), 9999);
|
log.info("redis setex user result : {}", redisSetExResult);
|
UserLoginResultVO resultVO = new UserLoginResultVO();
|
resultVO.setKey(pc_cookie_name);
|
resultVO.setToken(token);
|
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);
|
RedisShardedPoolUtils.del(logintoken);
|
CookieUtils.delLoginToken(httpServletRequest, httpServletResponse, cookie_name);
|
return ServerResponse.createBySuccess();
|
}
|
|
//查询手机号是否存在
|
@RequestMapping({"checkPhone.do"})
|
@ResponseBody
|
public ServerResponse checkPhone(String phoneNum) {
|
return this.iUserService.checkPhone(phoneNum);
|
}
|
|
//找回密码
|
@RequestMapping({"updatePwd.do"})
|
@ResponseBody
|
public ServerResponse updatePwd(String phoneNum, String code, String newPwd) {
|
return this.iUserService.updatePwd(phoneNum, code, newPwd);
|
}
|
|
/**
|
* 查询点差费率
|
* @author lr
|
* @date 2020/07/01
|
* applies:涨跌幅
|
* turnover:成交额
|
* code:股票代码
|
* unitprice:股票单价
|
**/
|
@RequestMapping({"findSpreadRateOne.do"})
|
@ResponseBody
|
public ServerResponse findSpreadRateOne(BigDecimal applies, BigDecimal turnover, String code, BigDecimal unitprice) {
|
SiteSpread siteSpread = this.iSiteSpreadService.findSpreadRateOne(applies,turnover,code,unitprice);
|
return ServerResponse.createBySuccess("Success", siteSpread);
|
}
|
|
|
}
|