|
@ -1,10 +1,12 @@
|
|
|
package com.yihu.jw.healthyhouse.service.user;
|
|
|
|
|
|
import com.yihu.jw.exception.business.ManageException;
|
|
|
import com.yihu.jw.healthyhouse.constant.LoginInfo;
|
|
|
import com.yihu.jw.healthyhouse.dao.UserDao;
|
|
|
import com.yihu.jw.healthyhouse.model.user.User;
|
|
|
import com.yihu.jw.restmodel.web.Envelop;
|
|
|
import com.yihu.jw.restmodel.wlyy.HouseUserContant;
|
|
|
import com.yihu.jw.util.date.DateUtil;
|
|
|
import com.yihu.jw.util.security.MD5;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.domain.Page;
|
|
@ -16,11 +18,9 @@ import org.springframework.util.StringUtils;
|
|
|
import org.springside.modules.persistence.DynamicSpecifications;
|
|
|
import org.springside.modules.persistence.SearchFilter;
|
|
|
|
|
|
import javax.persistence.criteria.*;
|
|
|
import javax.transaction.Transactional;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
import java.util.UUID;
|
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* @author HZY
|
|
@ -32,11 +32,11 @@ public class UserService {
|
|
|
@Autowired
|
|
|
private UserDao userDao;
|
|
|
|
|
|
public User findById(String id){
|
|
|
public User findById(String id) {
|
|
|
return userDao.findById(id);
|
|
|
}
|
|
|
|
|
|
public User findByCode(String code){
|
|
|
public User findByCode(String code) {
|
|
|
return userDao.findByLoginCode(code);
|
|
|
}
|
|
|
|
|
@ -46,15 +46,16 @@ public class UserService {
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 分页获取用户列表
|
|
|
* 分页获取用户列表
|
|
|
*
|
|
|
* @param page
|
|
|
* @param pageSize
|
|
|
* @param map
|
|
|
* @return
|
|
|
* @throws ManageException
|
|
|
*/
|
|
|
public Page<User> userList(Integer page, Integer pageSize, Map<String,String> map,String order)throws ManageException {
|
|
|
order = order == null ? "ASC" :order;
|
|
|
public Page<User> userList(Integer page, Integer pageSize, Map<String, String> map, String order) throws ManageException {
|
|
|
order = order == null ? "ASC" : order;
|
|
|
// 排序
|
|
|
Sort sort = new Sort(Sort.Direction.DESC, "facilityUsedCount");
|
|
|
// 分页信息
|
|
@ -89,40 +90,43 @@ public class UserService {
|
|
|
|
|
|
/**
|
|
|
* 更改用户状态
|
|
|
* @param id 待删除id
|
|
|
* @param userCode 修改者code
|
|
|
* @param status 更改状态
|
|
|
* @param reason 更改状态原因
|
|
|
* */
|
|
|
*
|
|
|
* @param id 待删除id
|
|
|
* @param userCode 修改者code
|
|
|
* @param status 更改状态
|
|
|
* @param reason 更改状态原因
|
|
|
*/
|
|
|
@Transactional
|
|
|
public void updateStatus(String id, String userCode,Integer status,String reason) {
|
|
|
public void updateStatus(String id, String userCode, Integer status, String reason) {
|
|
|
User user = userDao.findByLoginCode(userCode);
|
|
|
String userName = user.getName();
|
|
|
User user1 = findById(id);
|
|
|
user1.setActivated(status);
|
|
|
user1.setActivatedContent(reason);
|
|
|
User user1 = findById(id);
|
|
|
user1.setActivated(status);
|
|
|
user1.setActivatedContent(reason);
|
|
|
if (user != null) {
|
|
|
String userName = user.getName();
|
|
|
user1.setUpdateUserName(userName);
|
|
|
user1.setUpdateUser(userCode);
|
|
|
userDao.save(user1);
|
|
|
|
|
|
}
|
|
|
user1.setUpdateUser(userCode);
|
|
|
userDao.save(user1);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 新增/修改用户
|
|
|
* @param user 用户信息
|
|
|
* @param userCode 操作者编码
|
|
|
* 新增/修改用户
|
|
|
*
|
|
|
* @param user 用户信息
|
|
|
* @param userCode 操作者编码
|
|
|
* @return
|
|
|
* @throws ManageException
|
|
|
*/
|
|
|
public Envelop saveOrUpdate(User user, String userCode) throws ManageException {
|
|
|
User loginUser = userDao.findByLoginCode(userCode);
|
|
|
if(user.getId()==null){//保存
|
|
|
if (user.getId() == null) {//保存
|
|
|
//判断登陆账号是否存在
|
|
|
User user1 = userDao.findByLoginCode(userCode);
|
|
|
if(user1!=null){//登陆账号已存在
|
|
|
if (user1 != null) {//登陆账号已存在
|
|
|
throw new ManageException("该登陆账号已存在");
|
|
|
}
|
|
|
String salt = UUID.randomUUID().toString().replaceAll("-","");
|
|
|
String salt = UUID.randomUUID().toString().replaceAll("-", "");
|
|
|
user.setSalt(salt);
|
|
|
String password = MD5.GetMD5Code(user.getPassword() + salt);
|
|
|
user.setPassword(password);
|
|
@ -131,8 +135,8 @@ public class UserService {
|
|
|
user.setActivated(1);
|
|
|
userDao.save(user);
|
|
|
return Envelop.getSuccess("保存成功");
|
|
|
}else{//修改
|
|
|
if (loginUser!=null) {
|
|
|
} else {//修改
|
|
|
if (loginUser != null) {
|
|
|
String userName = loginUser.getName();
|
|
|
user.setUpdateUserName(userName);
|
|
|
}
|
|
@ -142,7 +146,50 @@ public class UserService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
|
public void updateFacilityUse(String id, String facilityId) throws ManageException {
|
|
|
User user1 = findById(id);
|
|
|
if (user1==null) {
|
|
|
throw new ManageException("该账号不存在");
|
|
|
}
|
|
|
user1.setFacilityUsedCount(user1.getFacilityUsedCount()+1);
|
|
|
userDao.save(user1);
|
|
|
//TODO 设施的使用次数更新
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取 用户统计信息
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
public Map<String, Long> findUserStatistics() {
|
|
|
Map<String, Long> result = new HashMap<>();
|
|
|
//用户总数
|
|
|
Long totalCount = userDao.countAllByUserType(LoginInfo.USER_TYPE_PATIENT);
|
|
|
//今日新增数
|
|
|
Date start = DateUtil.getDateStart();
|
|
|
Date end = DateUtil.getDateEnd();
|
|
|
Long newCount = userDao.countAllByCreateTimeBetween(start, end);
|
|
|
//在线用户数
|
|
|
Long activeCount = userDao.countAllByActivated(HouseUserContant.activated_active);
|
|
|
//用户设施使用总次数
|
|
|
Long usePricilityCount = sumFacilityCount();
|
|
|
result.put("totalCount",totalCount);
|
|
|
result.put("newCount",newCount);
|
|
|
result.put("activeCount",activeCount);
|
|
|
result.put("activeCount",activeCount);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 用户使用设施次数总和
|
|
|
* @return
|
|
|
*/
|
|
|
public Long sumFacilityCount(){
|
|
|
Long aLong = userDao.sumFacilityUseCout();
|
|
|
return aLong;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|