123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- package com.dgtly.member.controller;
- import com.auth0.jwt.JWT;
- import com.auth0.jwt.algorithms.Algorithm;
- import com.dgtly.apiframework.util.TokenUtil;
- import com.dgtly.common.annotation.ApiNoCheckSign;
- import com.dgtly.common.annotation.ApiPassToken;
- import com.dgtly.common.core.controller.ApiBaseController;
- import com.dgtly.common.core.domain.AjaxResult;
- import com.dgtly.common.core.domain.ParameterObject;
- import com.dgtly.common.core.domain.ResultType;
- import com.dgtly.common.utils.DateUtils;
- import com.dgtly.common.utils.StringUtils;
- import com.dgtly.member.domain.MemberInfo;
- import com.dgtly.member.service.IMemberInfoService;
- import com.google.code.kaptcha.Constants;
- import io.swagger.annotations.ApiImplicitParam;
- import io.swagger.annotations.ApiImplicitParams;
- import io.swagger.annotations.ApiOperation;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpSession;
- import java.util.Date;
- /**
- * @descption: 网站前端用户信息相关接口API
- * @author LiuLingChao
- * @version 1.0
- * @company 神州数码通用软件(洛阳)有限公司
- * @copyright (c) 2019 LuoYang DGT Co'Ltd Inc. All rights reserved.
- * @date 2020-2-25 14:41
- * @since JDK1.8
- */
- @RestController
- @RequestMapping("/member/info")
- @ApiNoCheckSign/* 不用验证 签名 方法上可用*/
- public class MemberInfoController extends ApiBaseController {
- @Autowired
- private IMemberInfoService iMemberInfoService;
- /**
- * @descption: 网站用户注册
- * @param:
- * @return:
- * @auther: LiuLingChao
- * @date: 2020-2-25 14:43
- */
- @ApiOperation(value = "网站用户注册")
- @ApiImplicitParam(name = "params" , paramType = "body")
- @ApiPassToken/* 不用验证token 方法上可用*/
- @PostMapping("/userRegister")
- public Object userRegister(){
- ParameterObject obj = getParameterObject();
- MemberInfo memberInfo = obj.parseBean(MemberInfo.class);
- //校验用户名唯一性
- MemberInfo memberInfo1 = iMemberInfoService.checkMemberUnique(memberInfo.getLoginAccount());
- if(memberInfo1 != null){
- return AjaxResult.error(ResultType.LOGINNAMEREPEAT);
- }
- //校验手机号码唯一性
- MemberInfo memberInfo2 = iMemberInfoService.checkMemberPhoneUnique(memberInfo.getPhone());
- if(memberInfo1 != null){
- return AjaxResult.error(ResultType.PHONEREPEAT);
- }
- memberInfo.setLoginTime(DateUtils.getNowDate());
- memberInfo.setCreateTime(DateUtils.getNowDate());
- int flag = iMemberInfoService.insertMemberInfo(memberInfo);
- return toAjax(flag);
- }
- /**
- * @descption: 网站会员登录
- * @param:登录账号/手机号、密码
- * @return:
- * @auther: LiuLingChao
- * @date: 2020-2-25 15:35
- */
- @ApiOperation(value = "会员登录")
- @ApiImplicitParam(name = "params" , paramType = "body")
- @ApiPassToken/* 不用验证token 方法上可用*/
- @PostMapping("/memberLogin")
- public Object memberLogin(){
- ParameterObject obj = getParameterObject();
- MemberInfo memberInfo = obj.parseBean(MemberInfo.class);
- //获取验证码
- HttpSession httpSession = getSession();
- String key = httpSession.getAttribute(Constants.KAPTCHA_SESSION_KEY)+"";
- if(null != key && key.equals(memberInfo.getValidateCode())){
- MemberInfo memberInfo1 = iMemberInfoService.memberLogin(memberInfo);
- if(memberInfo1 == null){
- return AjaxResult.error(ResultType.PASSWORDERROR);
- }
- Date start = new Date();
- long currentTime = System.currentTimeMillis() + 12*60* 60 * 1000;//12小时有效时间
- Date end = new Date(currentTime);
- String token = JWT.create().withAudience(memberInfo1.getId()+"")
- .withIssuedAt(start)
- .withExpiresAt(end)
- .sign(Algorithm.HMAC256(memberInfo1.getLoginPassword()));
- return AjaxResult.success().putKV("token",token);
- }
- return AjaxResult.error(ResultType.VERIFICATIONERROR);
- }
- /**
- * @descption: 根据token获取会员信息
- * @param: token
- * @return:
- * @auther: LiuLingChao
- * @date: 2020-2-26 22:16
- */
- @ApiOperation(value = "根据token获取会员信息")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "params" , paramType = "body"),
- @ApiImplicitParam(name = "token" , paramType = "header")
- })
- @PostMapping("/getMemberInfo")
- public Object getMemberInfo(){
- String userId = TokenUtil.getTokenUserId();
- MemberInfo memberInfo = iMemberInfoService.selectMemberInfoById(Long.parseLong(userId));
- return AjaxResult.success().putKV("memberInfo",memberInfo);
- }
- /**
- * @descption: 修改用户信息
- * @param: token 用户信息
- * @return:
- * @auther: LiuLingChao
- * @date: 2020-2-28 15:01
- */
- @ApiOperation(value = "修改用户信息")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "params" , paramType = "body"),
- @ApiImplicitParam(name = "token" , paramType = "header")
- })
- @PostMapping("/editMemberInfo")
- public Object editMemberInfo(){
- String userId = TokenUtil.getTokenUserId();
- ParameterObject obj = getParameterObject();
- MemberInfo memberInfo = obj.parseBean(MemberInfo.class);
- memberInfo.setId(Long.parseLong(userId));
- int flag = iMemberInfoService.updateMemberInfo(memberInfo);
- return toAjax(flag);
- }
- }
|