package cn.cumtmaker.maker.service.impl;
import cn.cumtmaker.maker.VO.UserInfoVO;
import cn.cumtmaker.maker.VO.UserVO;
import cn.cumtmaker.maker.mapper.MakerInfoMapper;
import cn.cumtmaker.maker.mapper.UserInfoMapper;
import cn.cumtmaker.maker.mapper.UserMapper;
import cn.cumtmaker.maker.model.MakerInfo;
import cn.cumtmaker.maker.model.User;
import cn.cumtmaker.maker.model.UserInfo;
import cn.cumtmaker.maker.service.UserService;
import io.jsonwebtoken.Jwts;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.sql.Date;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
@Service
/**
* UserService实现类,用于实现用户登录注册,修改密码等功能
*/
public class UserServiceImpl implements UserService {
@Autowired
UserMapper userMapper;
@Autowired
UserInfoMapper userInfoMapper;
@Autowired
MakerInfoMapper makerInfoMapper;
@Autowired
JavaMailSender jms;
private Logger logger= LoggerFactory.getLogger(getClass());
/**
* 注册方法实现
* @param role
* @param username
* @param password
* @return 0/1
*/
@Override
public int userSignUp(String role,String username,String password){
if(userMapper.getUserByUserName(username)==null) {
BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
String encodePassword = bCryptPasswordEncoder.encode(password);
userMapper.signUp(role,username, encodePassword);
logger.info("用户名为"+username+"的"+role+"用户注册成功");
return 1;
}
else{
return 0;
}
}
/**
* 用户注册信息增加
* @param username
* @param nickname
* @param enable
* @param telephone
* @param email
* @param address
* @param registrationTime
* @param school
* @return 0/1
*/
@Override
public int setUserSignUpInfo(String username, String nickname, Integer enable, String telephone,String email, String address, Timestamp registrationTime, String school){
int userId=userMapper.getUserByUserName(username).getUserId();
String role=userMapper.getUserByUserName(username).getRole();
userInfoMapper.userSignUpInfo(userId,nickname,enable,telephone,email,address,registrationTime,school);
logger.info("用户名为"+username+"的"+role+"用户添加用户注册信息成功");
return 1;
}
/**
* 用户获取USER信息
* @param httpServletRequest
* @return UserInfo
*/
@Override
public UserInfo getUserInfoByUser(HttpServletRequest httpServletRequest){
//根据请求头获取UserVO
UserVO userVO = getUserByRequest(httpServletRequest);
logger.info("用户" + userVO.getUsername() + "查询了自己的USER信息");
return userInfoMapper.getUserInfo(userVO.getUserId());
}
/**
* 用户更新USER信息
* @param httpServletRequest
* @param username
* @param enable
* @param nickname
* @param telephone
* @param email
* @param address
* @param school
* @return 0/1
*/
@Override
public int updateUserInfoByUser(HttpServletRequest httpServletRequest,String username, Integer enable,String nickname,String telephone,
String email,String address,String school){
//根据请求头获取UserVO
UserVO userVO = getUserByRequest(httpServletRequest);
if (userVO != null && userVO.getUsername().equals(username)) {
//认证信息是用户本人
Integer userId = userVO.getUserId();
int code = userInfoMapper.updateUserInfo(userId,enable,nickname,telephone,email,address,school);
if (code == 1)
logger.info("用户" + username + "更改了自己的信息");
return code;
}
return 0;
}
/**
* 创客注册信息增加
* @param username
* @param storeName
* @param mobileNumber
* @param email
* @param school
* @param realName
* @param studentId
* @param registrationTime
* @return 0/1
*/
@Override
public int setMakerSignUpInfo(String username, String storeName, String mobileNumber, String email,
String school, String realName, String studentId, Timestamp registrationTime){
int userId=userMapper.getUserByUserName(username).getUserId();
String role=userMapper.getUserByUserName(username).getRole();
int storeId=userId;
makerInfoMapper.makerSignUpInfo(userId,storeId,storeName,mobileNumber,email,school,realName,studentId,registrationTime);
logger.info("用户名为"+username+"的"+role+"用户添加创客注册信息成功");
return 1;
}
/**
* 调用邮箱发送验证码
* @param sender
* @param username
* @param title
* @param text
* @return 0/1
*/
@Override
public int sendEmail(String sender,String username,String title,String text){
//建立邮件消息
SimpleMailMessage mainMessage = new SimpleMailMessage();
//发送者
mainMessage.setFrom(sender);
//验证用户角色
String role = getUserByUserName(username).getRole();
if(role.equals("USER")){
String receiver=getUserInfo(username).getEmail();
mainMessage.setTo(receiver);
logger.info("邮件接收者 -- "+receiver);
}else if(role.equals("MAKER")){
String receiver=getMakerInfo(username).getEmail();
mainMessage.setTo(receiver);
logger.info("邮件接收者 -- "+receiver);
}else{
return 0;
}
//发送的标题
mainMessage.setSubject(title);
//发送的内容
mainMessage.setText(text);
jms.send(mainMessage);
return 1;
}
/**
* 管理员根据username删除用户
* @param httpServletRequest
* @param username
* @return
*/
@Override
public int deleteUser(HttpServletRequest httpServletRequest,String username){
String token = httpServletRequest.getHeader("Authorization");
if (token != null) {
String adminname = getUserByRequest(httpServletRequest).getUsername();
String role = getUserByUserName(username).getRole();
//判断操作用户不是管理员
if (!role.equals("ADMIN")) {
int code = userMapper.deleteUser(username);
if (code == 1) {
logger.info("管理员" + adminname + "删除了一个" + role + "用户:" + username);
}
return code;
} else {
return 0;
}
}else{
return 0;
}
}
/**
* 根据用户名返回UserVO
* @param username
* @return UserVO
*/
@Override
public UserVO getUserByUserName(String username){
return toUserVO(userMapper.getUserByUserName(username));
}
/**
* 根据JWT Token 返回User信息
* @param request
* @return 0/1
*/
@Override
public UserVO getUserByRequest(HttpServletRequest request){
String token = request.getHeader("Authorization");
if (token != null){
String username= Jwts.parser()
.setSigningKey("GroupSix")
.parseClaimsJws(token.replace("Bearer ", "
没有合适的资源?快使用搜索试试~ 我知道了~
大学生创客联盟.zip
共506个文件
java:115个
jpg:102个
png:69个
需积分: 1 0 下载量 175 浏览量
2024-10-06
20:13:27
上传
评论
收藏 8.64MB ZIP 举报
温馨提示
大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客联盟.zip大学生创客
资源推荐
资源详情
资源评论
收起资源包目录
大学生创客联盟.zip大学生创客联盟.zip (506个子文件)
gradlew.bat 2KB
bootstrap.min.css 141KB
bootstrap.min.css 141KB
bootstrap.min.css 141KB
gwc.css 3KB
gwc.css 3KB
iconfont.css 3KB
iconfont.css 3KB
product.css 3KB
tjdd.css 2KB
tjdd.css 2KB
product.css 2KB
style.css 2KB
style.css 2KB
spcpzs.css 2KB
spcpzs.css 2KB
store.css 2KB
store.css 2KB
zfjm.css 1KB
zfjm.css 1KB
product_list.css 1KB
product_list.css 1KB
ywcdd.css 1KB
ywcdd.css 1KB
shr.css 308B
shr.css 308B
style.css 125B
.gitignore 276B
.gitignore 214B
.gitignore 48B
build.gradle 2KB
settings.gradle 27B
gradlew 5KB
chuangke_administration.html 19KB
cart.html 17KB
index.html 14KB
product.html 13KB
order_details.html 12KB
supplier_order.html 10KB
index.html 10KB
supplier.html 10KB
order.html 9KB
store_list.html 8KB
order_submit.html 8KB
product_list.html 8KB
store.html 7KB
chuangke_register.html 7KB
register.html 6KB
chuangke_login.html 5KB
chuangke_retrieve.html 5KB
find_password.html 5KB
payment.html 5KB
chuangke_agreement.html 5KB
chuangke_reset.html 5KB
reset.html 5KB
chuangke_success.html 5KB
register_success.html 4KB
chuangke_review.html 4KB
chuangke_fail.html 4KB
change_success.html 4KB
chuangke_change_success.html 4KB
receiver.html 4KB
index.html 547B
favicon.ico 1KB
gradle-wrapper.jar 55KB
UserServiceImpl.java 15KB
ProductGroupServiceImpl.java 13KB
AdminController.java 8KB
UserController.java 5KB
ProductGroupController.java 4KB
ValidateCodeController.java 4KB
ValidateCodeFilter.java 4KB
GroupCollectionsServiceImpl.java 4KB
CollectionController.java 4KB
StoreServiceImpl.java 3KB
JWTAuthenticationFilter.java 3KB
UserInfoVO.java 3KB
WebSecurityConfig.java 3KB
PaymentServiceImpl.java 3KB
UserInfo.java 3KB
Comment.java 3KB
Product.java 3KB
CartController.java 3KB
GroupEvaluationServiceImpl.java 3KB
SpecificationValue.java 3KB
ProductDetailUtil.java 2KB
GroupEvaluationController.java 2KB
MakerInfo.java 2KB
StoreCollectionsServiceImpl.java 2KB
StoreVOUtil.java 2KB
UserService.java 2KB
authenticationSuccessHandler.java 2KB
ProductServiceImpl.java 2KB
UploadServiceImpl.java 2KB
Specification.java 2KB
OrderMaster.java 2KB
OrderDetail.java 2KB
GroupSpecificationKey.java 2KB
Category.java 2KB
OrderDetailController.java 2KB
共 506 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
嵌入式大圣
- 粉丝: 2029
- 资源: 451
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 锐捷-RG-S6100系列交换机RGOS11.0(5)B7P1版本配置手册(V1.0)
- SpringBootProfilesDemo.zip(IDEA Community 2020.3.4)
- SSM口腔医疗机构线上服务系统(附源码+数据库)64903
- RAD12-FireDAC+Sqlite3 Demo
- SANGFOR-IPSEC-标准IPSEC(第三方对接)排错指导
- SpringBootRedisCacheDemo.zip(IDEA Community 2020.3.4)
- Ubuntu20.04 离线安装docker相关资源
- 使用 Python 的 Turtle 库绘制一只小猪佩奇
- H3C SecPath L100-1000-5000-ADE插卡负载均衡网络管理和监控命令参考
- DTC显示与16进制代码转换工具
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功