最近做完工程总结接口
接口定义如下
思路如下
1.修改密码
sql如下,看看就懂
update t_user set
PASSWORD = #{newPassword}
where
t_user.PASSWORD = #{oldPassword}
AND
(PHONE_NUM = #{loginInfo}
or
EMAIL = #{loginInfo})
2.找回密码
找回密码即是重置密码,用户短信验证成功后,只需要将新密码设置进来即可,sql如下
update t_user set
t_user.PASSWORD = #{newPassword}
where
PHONE_NUM = #{loginInfo}
or
EMAIL = #{loginInfo}
3.实现层如下
/**
* 用户密码修改
*
* @param loginInfo
* 用户手机号码或邮箱
* @param newPassword
* 新密码
* @param oldPassword
* 旧密码
* @param optType
* 密码修改模式(0, 修改密码;1:找回密码)
* @return 成功/失败
* @throws Exception
*/
public ResultObject updatePassword(String loginInfo, String newPassword, String oldPassword, Integer optType){
ResultObject ro = new ResultObject();
//判断标志位
boolean needBreak = false;
//修改密码
switch (optType) {
case 0:
//账号、新密码、旧密码不能为空
if ( StringUtils.isEmpty(loginInfo)||
StringUtils.isEmpty(newPassword) ||
StringUtils.isEmpty(oldPassword)){
ro.setResultCode(ResultCode.FAILED);
ro.setResultMsg(ResultMsg.MSG_FAILED);
needBreak = true;
}else if (StringUtils.equals(newPassword, oldPassword)) {
//新旧密码不能相同
ro.setResultCode(ResultCode.FAILED);
ro.setResultMsg(ResultMsg.MSG_FAILED);
needBreak = true;
}
if (!needBreak) {
//修改密码
int success = customerInfoMapper.updPassword(loginInfo, newPassword, oldPassword);
if (success == 1) {
//成功
ro.setResultCode(ResultCode.SUCCESS);
ro.setResultMsg(ResultMsg.MSG_SUCCESS);
}else
{
ro.setResultCode(ResultCode.FAILED);
ro.setResultMsg(ResultMsg.MSG_MODIFY_PASSWORD_FAILED);
}
}
break;
case 1:
//账号、重置密码不能为空
if ( StringUtils.isEmpty(loginInfo)||
StringUtils.isEmpty(newPassword)){
ro.setResultCode(ResultCode.FAILED);
ro.setResultMsg(ResultMsg.MSG_FAILED);
needBreak = true;
}
if (!needBreak) {
int success = customerInfoMapper.setPassword(loginInfo, newPassword);
if (success == 1) {
//成功
ro.setResultCode(ResultCode.SUCCESS);
ro.setResultMsg(ResultMsg.MSG_SUCCESS);
}else
{
ro.setResultCode(ResultCode.FAILED);
ro.setResultMsg(ResultMsg.MSG_SET_PASSWORD_FAILED);
}
}
default:
ro.setResultCode(ResultCode.FAILED);
ro.setResultMsg(ResultMsg.MSG_FAILED);
break;
}
return ro;
}