Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/jiwei/wlyy2.0 into dev

zdm 6 years ago
parent
commit
455365d516

+ 36 - 0
common/common-util/src/main/java/com/yihu/jw/util/date/DateUtil.java

@ -1026,4 +1026,40 @@ public class DateUtil {
        int week = c.get(Calendar.DAY_OF_WEEK);
        return week;
    }
    /**
     * 获取当天0点
     * @return
     */
    public static Date getDateStart(){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        Date zero = calendar.getTime();
        return zero;
    }
    /**
     * 获取当天23:59:59
     * @return
     */
    public static Date getDateEnd(){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.set(Calendar.HOUR_OF_DAY, 23);
        calendar.set(Calendar.MINUTE, 59);
        calendar.set(Calendar.SECOND, 59);
        Date zero = calendar.getTime();
        return zero;
    }
    public static void main(String[] args) {
        Date dateStart = getDateStart();
        Date dateEnd = getDateEnd();
        System.out.println(dateStart );
        System.out.println(dateEnd);
    }
}

+ 7 - 1
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/constant/LoginInfo.java

@ -13,7 +13,13 @@ public class LoginInfo {
    public static final String DEFAULT_PASSWORD = "123456";
    //用户创建类型
    //用户创建
    public static final String SAVE_TYPE_IJK = "ijkLogin";  //i健康登录注册
    public static final String SAVE_TYPE_PHONE = "phoneLogin";//手机登录注册
    //用户类型
    public static final String USER_TYPE_PATIENT = "Patient";//居民
    public static final String USER_TYPE_AdminManager = "AdminManager";//超管
    public static final String USER_TYPE_Server = "Server";//运营维护
}

+ 28 - 19
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/controller/user/UserController.java

@ -32,9 +32,8 @@ public class UserController  extends EnvelopRestEndpoint {
    @Autowired
    private UserService userService;
    //用户列表
    @GetMapping("/userList")
    @ApiOperation(value = "i健康用户登陆")
    @ApiOperation(value = "获取用户列表")
    public PageEnvelop userList(
            @ApiParam(name = "page", value = "页数", required = true)@RequestParam(required = true, name = "page") Integer page,
            @ApiParam(name = "pageSize", value = "每页数量", required = true)@RequestParam(required = true, name = "pageSize") Integer pageSize,
@ -52,12 +51,8 @@ public class UserController  extends EnvelopRestEndpoint {
    }
    /**
     *  获取用户详情
     * @param userId
     * @return
     */
    @GetMapping("/userDetail")
    @ApiOperation(value = "获取用户详情")
    public ObjEnvelop userDetail(
            @ApiParam(name = "userId", value = "用户id", required = true)@RequestParam(required = true, name = "userId") String userId ) {
        User user = userService.findById(userId);
@ -65,12 +60,16 @@ public class UserController  extends EnvelopRestEndpoint {
    }
    /**
     *  用户激活
     * @param userId
     * @return
     */
    @GetMapping("/activateUser")
    @GetMapping("/usedFacilityCount")
    @ApiOperation(value = "获取用户统计信息")
    public ObjEnvelop usedFacilityCount(
            @ApiParam(name = "userId", value = "用户id", required = true)@RequestParam(required = true, name = "userId") String userId ) {
        Map<String, Long> userStatistics = userService.findUserStatistics();
        return ObjEnvelop.getSuccess("获取成功",userStatistics);
    }
    @PostMapping("/activateUser")
    @ApiOperation(value = "用户激活")
    public Envelop activeUser(
            @ApiParam(name = "userId", value = "用户id", required = true)@RequestParam(required = true, name = "userId") String userId ,
            @ApiParam(name = "operator", value = "操作者", required = true)@RequestParam(required = true, name = "operator") String operator ) {
@ -79,12 +78,8 @@ public class UserController  extends EnvelopRestEndpoint {
    }
    /**
     *  用户冻结
     * @param userId
     * @return
     */
    @GetMapping("/freezeUser")
    @PostMapping("/freezeUser")
    @ApiOperation(value = "用户冻结")
    public Envelop freezeUser(
            @ApiParam(name = "userId", value = "用户id", required = true)@RequestParam(required = true, name = "userId") String userId ,
            @ApiParam(name = "reason", value = "冻结原因", required = true)@RequestParam(required = true, name = "reason") String reason ,
@ -93,4 +88,18 @@ public class UserController  extends EnvelopRestEndpoint {
        userService.updateStatus(userId,operator, HouseUserContant.activated_lock,reason);
        return ObjEnvelop.getSuccess("冻结成功");
    }
    @PostMapping("/facilityUseUpdate")
    @ApiOperation(value = "更新设施使用次数")
    public Envelop facilityUseUpdate(
            @ApiParam(name = "userId", value = "用户Id", required = true)@RequestParam(required = true, name = "userId") String userId ,
            @ApiParam(name = "facilityId", value = "设施Id", required = true)@RequestParam(required = true, name = "facilityId") String facilityId ) throws ManageException {
        userService.updateFacilityUse(userId,facilityId);
        return ObjEnvelop.getSuccess("更新用户使用设施次数成功");
    }
}

+ 12 - 0
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/dao/UserDao.java

@ -7,6 +7,8 @@ import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
/**
 * @author HZY
 * @created 2018/9/18 19:21
@ -22,8 +24,18 @@ public interface UserDao extends PagingAndSortingRepository<User, String>, JpaSp
    @Query("from User u where u.name=?1 and u.activated<>0 ")
    User findByName(String name);
    @Override
    @Transactional
    @Modifying
    @Query("update User u set u.activated = 0 where u.loginCode = ?1 ")
    void delete(String loginCode);
    @Query("select sum (u.facilityUsedCount) from User u")
    Long sumFacilityUseCout();
    Long countAllByActivated(Integer activated);
    Long countAllByUserType(String userType);
    Long countAllByCreateTimeBetween(Date start,Date end);
}

+ 3 - 3
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/model/user/User.java

@ -48,7 +48,7 @@ public class User extends UuidIdentityEntityWithOperator {
    @Column(name = "salt")
    private String salt; //加密种子
    @Column(name = "facility_used_count")
    private String facilityUsedCount;//设施使用次数
    private Integer facilityUsedCount;//设施使用次数
    public String getLoginCode() {
@ -163,11 +163,11 @@ public class User extends UuidIdentityEntityWithOperator {
        this.salt = salt;
    }
    public String getFacilityUsedCount() {
    public Integer getFacilityUsedCount() {
        return facilityUsedCount;
    }
    public void setFacilityUsedCount(String facilityUsedCount) {
    public void setFacilityUsedCount(Integer facilityUsedCount) {
        this.facilityUsedCount = facilityUsedCount;
    }

+ 77 - 30
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/service/user/UserService.java

@ -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;
    }
}