package com.taoroot.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.taoroot.common.*;
import com.taoroot.dao.UserMapper;
import com.taoroot.pojo.User;
import com.taoroot.service.IUserService;
import com.taoroot.util.ConfigUtil;
import com.taoroot.util.JwtUtil;
import com.taoroot.vo.NewObjCountVo;
import com.taoroot.vo.UserVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author: taoroot
* @date: 2018/1/13
* @description:
*/
@Service("IUserService")
public class UserServiceImpl implements IUserService {
public static final Long appValidTIME = Long.valueOf(ConfigUtil.get("appValidTIME"));
public static final Long webValidTIME = Long.valueOf(ConfigUtil.get("webValidTIME"));
@Autowired
private UserMapper userMapper;
@Override
public ServerResponse login(String username, String password) {
// 参数检查
if (username == null || password == null) {
return ServerResponse.createByErrorCodeMessage(ResponseCode.ILLEGAL_ARGUMENT.getCode(), null);
}
if (userMapper.checkUsername(username) == 0) {
return ServerResponse.createByErrorMessage("用户名不存在");
}
// todo 密码 MD5
User user = userMapper.selectLogin(username, password);
if (user == null) {
return ServerResponse.createByErrorMessage("密码错误");
}
if (user.getStatus() == StatusTypeCode.DISABLE.getCode()) {
return ServerResponse.createByErrorMessage("已被禁用, 请联系管理员");
}
String token = JwtUtil.createJWT(user.getId(), LoginTypeCode.WEB.getDesc(), "", webValidTIME);
return ServerResponse.createBySuccessToken("登录成功", null, token);
}
@Override
public ServerResponse<PageInfo> getUserList(int pageNum, int pageSize, String orderBy) {
PageHelper.startPage(pageNum, pageSize, orderBy);
List<User> userList = userMapper.selectList();
PageInfo pageResult = new PageInfo(userList);
return ServerResponse.createBySuccess(pageResult);
}
@Override
public ServerResponse getUserById(int userId) {
User user = userMapper.selectByPrimaryKey(userId);
if (user == null) {
return ServerResponse.createByError();
} else {
String token = JwtUtil.createJWT(user.getId(), LoginTypeCode.WEB.getDesc(), "", webValidTIME);
return ServerResponse.createBySuccessToken(null, assembleUserVo(user), token);
}
}
/**
* 判断下用户是否是超级管理员,
* 只有是超级管理的人才可以更新别人的信息,
* 否则只能更新自己的信息
*
* @param user 待更新用户
* @param userId 操作用户的id
* @return
*/
@Override
public ServerResponse update(User user, int userId) {
// 可以更新的用户信息
User updateUser = new User();
User selectUser = userMapper.selectByPrimaryKey(user.getId());
updateUser.setId(user.getId());
// 对用户名唯一性检测
boolean changeNameFlag = selectUser.getUsername().equals(user.getUsername());
if (!changeNameFlag && userMapper.checkUsername(user.getUsername()) > 0) {
return ServerResponse.createByErrorMessage("用户名已被注册");
}
// 对邮箱唯一性检测
boolean changeEmailFlag = selectUser.getEmail().equals(user.getEmail());
if (!changeEmailFlag && userMapper.checkEmail(user.getEmail()) > 0) {
return ServerResponse.createByErrorMessage("邮箱已被注册");
}
// 对手机号唯一性检测
boolean changePhoneFlag = selectUser.getPhone().equals(user.getPhone());
if (!changePhoneFlag && userMapper.checkPhone(user.getPhone()) > 0) {
return ServerResponse.createByErrorMessage("改手机号已被注册");
}
updateUser.setUsername(user.getUsername());
updateUser.setEmail(user.getEmail());
updateUser.setPhone(user.getPhone());
updateUser.setQuestion(user.getQuestion());
updateUser.setAnswer(user.getAnswer());
updateUser.setAddress(user.getAddress());
if (userId == user.getId()) {
return updateUser(updateUser);
} else {
// 只有管理员才可以更新别人的信息
if (isAdmin(userId)) {
updateUser.setStatus(user.getStatus());
return updateUser(updateUser);
} else {
return ServerResponse.createByErrorCodeMessage(ResponseCode.NEED_ADMIN.getCode(), null);
}
}
}
/**
* 查看str 在 type字段中是否已被占用
*
* @param str
* @param type
* @return
*/
@Override
public ServerResponse checkValid(String str, String type) {
if (str == null || type == null) {
return ServerResponse.createByErrorCodeMessage(ResponseCode.ILLEGAL_ARGUMENT.getCode(), null);
}
switch (type) {
case "username":
if (userMapper.checkUsername(str) > 0) {
return ServerResponse.createByError();
}
break;
case "email":
if (userMapper.checkEmail(str) > 0) {
return ServerResponse.createByError();
}
break;
default:
return ServerResponse.createByErrorCodeMessage(ResponseCode.ILLEGAL_ARGUMENT.getCode(), null);
}
return ServerResponse.createBySuccess();
}
@Override
public ServerResponse register(User user) {
if (userMapper.checkUsername(user.getUsername()) > 0) {
return ServerResponse.createByErrorMessage("用户名已被注册");
}
if (userMapper.checkEmail(user.getEmail()) > 0) {
return ServerResponse.createByErrorMessage("邮箱已被注册");
}
if (userMapper.checkPhone(user.getPhone()) > 0) {
return ServerResponse.createByErrorMessage("改手机号已被注册");
}
user.setRole(1);
user.setStatus(1);
if (userMapper.insert(user) == 0) {
return ServerResponse.createByErrorMessage("系统错误,注册失败");
}
return ServerResponse.createBySuccessMessage("注册成功");
}
@Override
public boolean updateStatus(int userId) {
int status = userMapper.selectStatus(userId);
User user = new User();
user.setId(userId);
if (status != StatusTypeCode.DISABLE.getCode()) {
if (status != StatusTypeCode.ONLINE.getCode()) {
user.setStatus(StatusTypeCode.ONLINE.getCode());
userMapper.updateByPrimaryKeySelective(user);
}
return true;
}
return false;
}
@Override
public ServerResponse search(String str, int pageNum, int pageSize, String orderBy) {
PageHelper.startPage(pageNum, pageSize, orderBy);
List<User> userList = userMapper.search(str);
PageInfo pageResult = new PageInfo(userList);
return ServerResponse.createBySuccess(pageResult);
}
@Override
public ServerResponse getNewUserCount(int type) {
NewObjCountVo data = new NewObjCountVo();
int total = 0;
for (int i = 0; i < 7; i++) {
data.getCount()[i] = userMapper.getNewUserCountByWeek(-1 * i - 1 + 7 * type);
total += data.getCount()[i];
data.setTotal(total);
}
return ServerResponse.createBySuccess(data);
}
@Override
public boolean updatePicture(int userId, String url) {
User user = new User();
user.setId(userId);
user.setAvatar(url);
int result = userMapper.updateByPrimar
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
java智慧农业物联网平台-后端.zip (74个子文件)
java智慧农业物联网平台-后端
farm_back-1.0
farm_back-1.0
pom.xml 8KB
src
main
resources
spring
spring-redis.xml 3KB
spring-web.xml 3KB
spring-dao.xml 3KB
spring-service.xml 1KB
jdbc.properties 269B
generatorConfig.xml 7KB
mybatis-config.xml 1KB
log4j.properties 1KB
redis.properties 223B
mappers
GreenhouseMapper.xml 3KB
DeviceMapper.xml 6KB
GreenhouseDeviceMapper.xml 3KB
UserMapper.xml 9KB
ThresholdMapper.xml 3KB
UserDeviceMapper.xml 3KB
HumidityMapper.xml 4KB
TemperatureMapper.xml 4KB
config.properties 304B
java
com
taoroot
controller
DataController.java 1KB
UserController.java 5KB
GreenhouseController.java 2KB
DeviceController.java 3KB
dao
DeviceMapper.java 814B
TemperatureMapper.java 542B
UserMapper.java 778B
GreenhouseDeviceMapper.java 538B
UserDeviceMapper.java 374B
ThresholdMapper.java 361B
HumidityMapper.java 518B
GreenhouseMapper.java 533B
pojo
Temperature.java 1005B
GreenhouseDevice.java 989B
Humidity.java 996B
UserDevice.java 771B
Greenhouse.java 837B
Threshold.java 1KB
Device.java 3KB
User.java 5KB
service
IDeviceService.java 597B
IDataService.java 255B
IGreenhouseService.java 418B
IUserService.java 784B
IAgentService.java 406B
impl
AgentServiceImpl.java 3KB
FileServiceImpl.java 2KB
DeviceServiceImpl.java 5KB
UserServiceImpl.java 9KB
GreenhouseServiceImpl.java 3KB
DataServiceImpl.java 1KB
IFileService.java 237B
common
CountTypeCode.java 442B
LoginTypeCode.java 422B
ServerResponse.java 3KB
RoleTypeCode.java 422B
ResponseCode.java 591B
StatusTypeCode.java 470B
ThresholdTypeCode.java 461B
redis
TopicMessageListener.java 3KB
entiy
FarmAgentMessage.java 3KB
util
JwtUtil.java 2KB
ConfigUtil.java 355B
MD5Util.java 1KB
JsonpFilter.java 1KB
FTPUtil.java 3KB
vo
NewObjCountVo.java 642B
GreenhouseDeviceVo.java 627B
UserVo.java 1KB
interceptor
PermissionsHandlerInterceptor.java 2KB
MyExceptionHandler.java 1KB
SpringMVCHandlerInterceptor.java 3KB
webapp
WEB-INF
web.xml 2KB
index.jsp 122B
db_farm.sql 5KB
共 74 条
- 1
资源评论
- 2301_770771362024-01-01超赞的资源,感谢资源主分享,大家一起进步!
GeekyGuru
- 粉丝: 1689
- 资源: 1099
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功