package com.mmall.service.impl;
import com.mmall.common.Const;
import com.mmall.common.ServiceResponse;
import com.mmall.common.TokenCache;
import com.mmall.dao.UserMapper;
import com.mmall.pojo.User;
import com.mmall.service.IUserService;
import com.mmall.util.MD5Util;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpSession;
import java.util.UUID;
@Service("iUserService")
public class UserServiceImpl implements IUserService{
@Autowired
private UserMapper userMapper;
@Override
public ServiceResponse<User> login(String username, String password) {
int resultCount = userMapper.checkUsername(username);
if (resultCount ==0){
return ServiceResponse.createByErrorMessage("用户名不存在");
}
String MD5password = MD5Util.MD5EncodeUtf8(password);
User user = userMapper.selectLogin(username,MD5password);
if (user == null){
return ServiceResponse.createByErrorMessage("密码错误");
}
user.setPassword(StringUtils.EMPTY);
return ServiceResponse.createBySuccess("登陆成功",user);
}
public ServiceResponse<String> register(User user){
ServiceResponse validResponse = this.checkValid(user.getUsername(),Const.USERNAME);
if (!validResponse.isSuccess()){
return validResponse;
}
validResponse = this.checkValid(user.getEmail(),Const.EMAIL);
if (!validResponse.isSuccess()){
return validResponse;
}
user.setRole(Const.Role.ROLE_CUSTOMER);
user.setPassword(MD5Util.MD5EncodeUtf8(user.getPassword()));
int resultcount = userMapper.insert(user);
if (resultcount == 0){
return ServiceResponse.createByErrorMessage("注册失败");
}
return ServiceResponse.createBySuccessMessage("注册成功");
}
public ServiceResponse<String> checkValid(String str ,String type){
if(StringUtils.isNoneBlank(type)){
if (Const.USERNAME.equals(type)){
int resultcount = userMapper.checkUsername(str);
if (resultcount>0){
return ServiceResponse.createByErrorMessage("用户已存在");
}
}
if (Const.EMAIL.equals(type)){
int resultcount = userMapper.checkUsername(str);
if (resultcount>0){
return ServiceResponse.createByErrorMessage("用户已存在");
}
}
}else {
return ServiceResponse.createByErrorMessage("参数错误");
}
return ServiceResponse.createBySuccessMessage("注册成功");
}
public ServiceResponse<String> selectQuestion(String username ){
ServiceResponse serviceResponse = this.checkValid(username,Const.USERNAME);
if (serviceResponse.isSuccess()){
return ServiceResponse.createByErrorMessage("用户的信息不存在");
}
String string = userMapper.selectQuestionByUsername(username);
if (StringUtils.isNoneBlank(string)){
return ServiceResponse.createBySuccess(string);
}
return ServiceResponse.createByErrorMessage("找回问题不存在");
}
public ServiceResponse<String> checkAnswer(String username,String question,String answer){
int resultCount = userMapper.checkAnswer(username,question,answer);
if(resultCount>0){
String forgetToken = UUID.randomUUID().toString();
TokenCache.setKey(TokenCache.TOKEN_PREFIX+username,forgetToken);
return ServiceResponse.createBySuccess(forgetToken);
}
return ServiceResponse.createByErrorMessage("回答错误");
}
public ServiceResponse<String> forgetResetPassword(String username ,String password ,String forgetToken){
if (StringUtils.isBlank(forgetToken)){
return ServiceResponse.createByErrorMessage("token参数错误");
}
ServiceResponse serviceResponse = this.checkValid(username,Const.USERNAME);
if (serviceResponse.isSuccess()){
return ServiceResponse.createByErrorMessage("用户的信息不存在");
}
String token = TokenCache.getKey(TokenCache.TOKEN_PREFIX+username);
if (StringUtils.isBlank(token)){
return ServiceResponse.createByErrorMessage("token无效或者过期");
}
if (StringUtils.equals(forgetToken,token)){
String MD5Password = MD5Util.MD5EncodeUtf8(password);
int rowCount = userMapper.updatePasswordByUsername(username,MD5Password);
if (rowCount>0){
return ServiceResponse.createBySuccess("修改密码成功");
}
} else{
return ServiceResponse.createByErrorMessage("token获取错误,请重新获取");
}
return ServiceResponse.createByErrorMessage("修改密码失败");
}
public ServiceResponse<String> resetPassword( String passwordOld, String passwordNew,User user){
int count = userMapper.checkPassword(MD5Util.MD5EncodeUtf8(passwordOld),user.getId());
if (count== 0){
return ServiceResponse.createByErrorMessage("旧密码错误");
}
user.setPassword(MD5Util.MD5EncodeUtf8(passwordNew));
int updateCount = userMapper.updateByPrimaryKeySelective(user);
if (updateCount>0){
return ServiceResponse.createBySuccessMessage("密码更新成功");
}
return ServiceResponse.createByErrorMessage("密码更新失败");
}
public ServiceResponse<User> updateInfomation(User user){
int count = userMapper.checkEnmailNotExist(user.getEmail(),user.getId());
if (count>0){
return ServiceResponse.createByErrorMessage("邮箱已存在");
}
User upadateUser = new User();
upadateUser.setId(user.getId());
upadateUser.setEmail(user.getEmail());
upadateUser.setAnswer(user.getAnswer());
upadateUser.setQuestion(user.getQuestion());
upadateUser.setPhone(user.getPhone());
int updataCount = userMapper.updateByPrimaryKeySelective(upadateUser);
if (updataCount>0){
return ServiceResponse.createBySuccessMessage("更新信息成功");
}
return ServiceResponse.createByErrorMessage("更新信息失败");
}
public ServiceResponse<User> getInfomation(Integer userId){
User user = userMapper.selectByPrimaryKey(userId);
if(user == null){
return ServiceResponse.createByErrorMessage("找不到当前用户");
}
user.setPassword(StringUtils.EMPTY);
return ServiceResponse.createBySuccess(user);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
java+电商实战项目.zip (224个子文件)
UserServiceImpl.class 7KB
UserController.class 6KB
Order.class 4KB
Order.class 4KB
Shipping.class 4KB
Shipping.class 4KB
ServiceResponse.class 4KB
Product.class 4KB
Product.class 4KB
OrderItem.class 3KB
OrderItem.class 3KB
User.class 3KB
User.class 3KB
PayInfo.class 3KB
PayInfo.class 3KB
Category.class 2KB
Category.class 2KB
UserManageController.class 2KB
MD5Util.class 2KB
TokenCache.class 2KB
Cart.class 2KB
Cart.class 2KB
IUserService.class 2KB
ResponseCode.class 1KB
UserMapper.class 1KB
TokenCache$1.class 850B
Const.class 506B
OrderItemMapper.class 400B
OrderItemMapper.class 400B
ShippingMapper.class 396B
CategoryMapper.class 396B
CategoryMapper.class 396B
ShippingMapper.class 396B
PayInfoMapper.class 392B
ProductMapper.class 392B
ProductMapper.class 392B
PayInfoMapper.class 392B
OrderMapper.class 384B
OrderMapper.class 384B
CartMapper.class 380B
CartMapper.class 380B
UserMapper.class 380B
Const$Role.class 270B
mmal.iml 6KB
guava-20.0.jar 2.33MB
aspectjweaver-1.7.3.jar 1.74MB
mybatis-3.4.1.jar 1.51MB
spring-core-4.0.0.RELEASE.jar 933KB
spring-context-4.0.0.RELEASE.jar 928KB
jackson-mapper-asl-1.9.12.jar 762KB
mysql-connector-java-5.1.6.jar 687KB
spring-beans-4.0.0.RELEASE.jar 654KB
spring-web-4.0.0.RELEASE.jar 646KB
spring-webmvc-4.0.0.RELEASE.jar 645KB
joda-time-2.3.jar 568KB
commons-collections-3.2.1.jar 562KB
jedis-2.9.0.jar 541KB
commons-lang3-3.5.jar 469KB
core-2.1.jar 441KB
spring-test-4.0.0.RELEASE.jar 431KB
logback-core-1.1.2.jar 418KB
spring-jdbc-4.0.0.RELEASE.jar 410KB
commons-configuration-1.10.jar 354KB
spring-aop-4.0.0.RELEASE.jar 343KB
junit-4.12.jar 308KB
jsqlparser-0.9.4.jar 295KB
commons-lang-2.6.jar 278KB
commons-codec-1.10.jar 278KB
commons-net-3.1.jar 267KB
logback-classic-1.1.2.jar 264KB
spring-tx-4.0.0.RELEASE.jar 242KB
jackson-core-asl-1.9.12.jar 227KB
gson-2.3.1.jar 206KB
spring-expression-4.0.0.RELEASE.jar 202KB
tomcat-servlet-api-7.0.64.jar 193KB
commons-dbcp-1.4.jar 157KB
commons-io-2.0.1.jar 156KB
aspectjrt-1.6.11.jar 113KB
commons-pool2-2.4.2.jar 109KB
commons-pool-1.5.4.jar 94KB
spring-oxm-4.0.0.RELEASE.jar 77KB
pagehelper-4.1.0.jar 65KB
commons-logging-1.1.1.jar 59KB
commons-fileupload-1.2.2.jar 58KB
mybatis-spring-1.3.0.jar 52KB
mybatis-paginator-1.2.17.jar 45KB
hamcrest-core-1.3.jar 44KB
slf4j-api-1.7.6.jar 28KB
hashids-1.0.1.jar 8KB
aopalliance-1.0.jar 4KB
UserServiceImpl.java 7KB
UserController.java 5KB
Shipping.java 4KB
Order.java 3KB
Product.java 3KB
OrderItem.java 3KB
User.java 2KB
ServiceResponse.java 2KB
PayInfo.java 2KB
Category.java 2KB
共 224 条
- 1
- 2
- 3
资源评论
- qq_416353992023-12-06超赞的资源,感谢资源主分享,大家一起进步!
GeekyGuru
- 粉丝: 1723
- 资源: 1099
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功