package fwzl.service.impl;
import fwzl.common.Constant;
import fwzl.dao.*;
import fwzl.entity.User;
import fwzl.entity.UserPicture;
import fwzl.service.UserService;
import fwzl.util.StringUtils;
import fwzl.vo.PageObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 用户sercice
* @author 马亮
*/
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
@Qualifier("userDao")
private UserDao userDao;
@Autowired
@Qualifier("userPictureDao")
private UserPictureDao userPictureDao;
@Autowired
@Qualifier("houseDao")
private HouseDao houseDao;
@Autowired
@Qualifier("housePictureDao")
private HousePictureDao housePictureDao;
@Autowired
@Qualifier("roleDao")
private RoleDao roleDao;
@Autowired
@Qualifier("rentOrderDao")
private RentOrderDao rentOrderDao;
@Override
public User login(String username, String password) {
User user = userDao.findUserByName(username);
if (user == null) {
throw new RuntimeException("该用户不存在");
}
String salt = user.getSalt();
//对密码进行加密
password = StringUtils.digest(password, salt);
if (!user.getPassword().equals(password)) {
throw new RuntimeException("密码错误");
}
return user;
}
@Transactional(rollbackFor = Exception.class)
@Override
public User updateUser(Map<String, Object> map) {
User user = new User();
user.setId(Integer.parseInt(StringUtils.trim(String.valueOf(map.get("userId")))));
user.setRealName(StringUtils.trim((String) map.get("realName")));
user.setBirthday(StringUtils.convertStrToDate(StringUtils.trim((String) map.get("birthday")), ""));
user.setEmail(StringUtils.trim((String) map.get("email")));
user.setGender(StringUtils.trim((String) map.get("gender")));
user.setMobile(StringUtils.trim((String) map.get("mobile")));
user.setModifiedTime(new Date());
user.setModifiedUser(user.getUsername());
int rtn = userDao.updateUser(user);
if (rtn < 0) {
throw new RuntimeException("更新用户信息失败");
}
//保存照片
String userPictureName = StringUtils.trim((String) map.get("pictureName"));
if (!StringUtils.isEmply(userPictureName)) {
boolean isExists = true;
UserPicture userPicture = userPictureDao.findUserPicture(user.getId());
if (userPicture == null) {
isExists = false;
userPicture = new UserPicture();
}
userPicture.setUserId(user.getId());
userPicture.setPictureName(userPictureName);
userPicture.setPictureType(StringUtils.getExtName(userPictureName));
if (isExists) {
userPicture.setModifiedTime(new Date());
userPicture.setModifiedUser(StringUtils.trim((String) map.get("username")));
rtn= userPictureDao.updateUserPicture(userPicture);
} else {
userPicture.setCreatedTime(new Date());
userPicture.setCreatedUser(StringUtils.trim((String) map.get("username")));
rtn = userPictureDao.saveUserPicture(userPicture);
}
if (rtn <= 0) {
throw new RuntimeException("保存图片失败");
}
}
return user;
}
@Override
public User findUserById(String id) {
return userDao.getUser(Integer.parseInt(id));
}
@Override
public int findUserByUsername(String username) {
User user = userDao.findUserByName(username);
if (user == null) {
return Constant.NOT_FOUND;
}
return Constant.FOUND;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updatePassword(Map<String, Object> map) {
String oldPassword = StringUtils.trim((String) map.get("oldPassword"));
String newPassword = StringUtils.trim((String) map.get("newPassword"));
String password = StringUtils.trim((String) map.get("password"));
String salt = StringUtils.trim((String) map.get("salt"));
oldPassword = StringUtils.digest(oldPassword, salt);
if (!password.equals(oldPassword)) {
throw new RuntimeException("旧密码输入错误");
}
newPassword = StringUtils.digest(newPassword, salt);
Integer id = Integer.parseInt(StringUtils.trim(String.valueOf(map.get("userId"))));
int rtn = userDao.updatePassword(id, newPassword);
if (rtn < 0) {
throw new RuntimeException("更新失败");
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveUser(Map<String, Object> map) {
User user = new User();
user.setUsername(StringUtils.trim((String) map.get("user")));
String password = StringUtils.trim((String) map.get("passwd"));
user.setRealName(StringUtils.trim((String) map.get("realName")));
String uuid = StringUtils.getUUID();
user.setSalt(uuid);
//编码
password = StringUtils.digest(password, uuid);
user.setPassword(password);
user.setEmail(StringUtils.trim((String) map.get("email")));
Integer sort = userDao.getMaxSort();
if (sort == null) {
sort = 0;
}
sort++;
user.setSort(sort);
int rtn = userDao.saveUser(user);
if (rtn <= 0) {
throw new RuntimeException("保存用户失败");
}
//设置新注册用户的角色,默认为角色用户
//查询普通用户的角色id
Integer roleId = roleDao.findRoleByRoleName(Constant.ROLE_USER);
if (roleId == null || roleId <= 0) {
throw new RuntimeException("查询用户角色失败");
}
//保存用户的角色
rtn = userDao.saveUserRole(user.getId(), new Integer[]{roleId});
if (rtn <= 0) {
throw new RuntimeException("保存用户角色失败");
}
//获取普通用户拥有的权限,将其设置为用户的权限
Integer[] auths = roleDao.findRoleAuthByRoleId(roleId);
rtn = userDao.saveUserAuth(user.getId(), auths);
if (rtn <= 0) {
throw new RuntimeException("保存用户权限失败");
}
}
@Override
public List<Map<String, Object>> getUserRole(int userId) {
List<Map<String, Object>> listRoles = roleDao.findRoleByUserId(userId);
return listRoles;
}
@Override
public PageObject getUsersByPage(Map<String, Object> map) {
map.put("birthday", StringUtils.convertStrToDate((String) map.get("birthday"), ""));
map.put("start", Integer.parseInt((String) map.get("start")));
map.put("limit", Integer.parseInt((String) map.get("limit")));
List<User> userList = userDao.getUsers(map);
for (User user : userList) {
String gender = user.getGender();
if (Constant.GENDER_MALE.equals(gender)) {
user.setGender("男");
} else if (Constant.GENDER_FEMALE.equals(gender)) {
user.setGender("女");
}
}
PageObject page = new PageObject();
page.setData(userList);
page.setTotalCount(userDao.getUserCounts(map));
return page;
}
@Transactional(rollbackFor = Exception.class)
@Override
public void deleteUser(String id) {
int n = userDao.deleteUserAuth(Integer.parseInt(id));
if (n < 0) {
throw new RuntimeException("删除�
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计,SSM房屋租赁信息发布系统.zip (1359个子文件)
.babelrc 402B
UserServiceImpl.class 10KB
UserServiceImpl.class 10KB
UserController.class 8KB
UserController.class 8KB
HouseServiceImpl.class 8KB
HouseServiceImpl.class 8KB
HouseController.class 5KB
HouseController.class 5KB
UserPictureController.class 5KB
UserPictureController.class 5KB
RentOrderServiceImpl.class 5KB
RentOrderServiceImpl.class 5KB
ZmglController.class 5KB
ZmglController.class 5KB
HousePictureController.class 4KB
HousePictureController.class 4KB
User.class 4KB
StringUtils.class 4KB
User.class 4KB
StringUtils.class 4KB
LoginController.class 4KB
LoginController.class 4KB
HousePictureServiceImpl.class 4KB
HousePictureServiceImpl.class 4KB
ModuleServiceImpl.class 4KB
ModuleServiceImpl.class 4KB
UserPictureServiceImpl.class 4KB
UserPictureServiceImpl.class 4KB
House.class 4KB
House.class 4KB
RentOrder.class 4KB
RentOrder.class 4KB
Module.class 3KB
Module.class 3KB
TjfxController.class 3KB
TjfxController.class 3KB
ModuleController.class 3KB
ModuleController.class 3KB
WebUtils.class 2KB
WebUtils.class 2KB
HousePicture.class 2KB
HousePicture.class 2KB
UserPicture.class 2KB
UserPicture.class 2KB
Role.class 2KB
Role.class 2KB
HouseDao.class 2KB
HouseDao.class 2KB
TreeNode.class 2KB
TreeNode.class 2KB
LoginInterceptor.class 2KB
LoginInterceptor.class 2KB
UserDao.class 1KB
UserDao.class 1KB
JsonResult.class 1KB
JsonResult.class 1KB
RentOrderDao.class 1KB
RentOrderDao.class 1KB
UserService.class 950B
UserService.class 950B
PageObject.class 888B
PageObject.class 888B
HousePictureDao.class 874B
HousePictureDao.class 874B
HouseService.class 780B
HouseService.class 780B
Constant.class 701B
Constant.class 701B
RoleDao.class 686B
RoleDao.class 686B
UserPictureDao.class 681B
UserPictureDao.class 681B
RentOrderService.class 608B
RentOrderService.class 608B
ModuleDao.class 604B
ModuleDao.class 604B
HousePictureService.class 419B
HousePictureService.class 419B
UserPictureService.class 405B
UserPictureService.class 405B
ModuleService.class 387B
ModuleService.class 387B
app.aa3194b69fe199c3faf1a980586967f8.css 178KB
ext-all.css 136KB
ext-all.css 136KB
bootstrap.min.css 118KB
bootstrap.min.css 118KB
ext-all-notheme.css 98KB
ext-all-notheme.css 98KB
xtheme-access.css 40KB
xtheme-access.css 40KB
xtheme-blue.css 38KB
xtheme-blue.css 38KB
xtheme-gray.css 38KB
xtheme-gray.css 38KB
yourtheme.css 37KB
yourtheme.css 37KB
bootstrap-theme.min.css 23KB
bootstrap-theme.min.css 23KB
共 1359 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14
资源评论
马coder
- 粉丝: 1201
- 资源: 6602
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功