ソースを参照

健康小屋- 逻辑修改

huangzhiyong 6 年 前
コミット
ece94c490f

+ 23 - 9
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/controller/LoginController.java

@ -4,9 +4,11 @@ import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.healthyhouse.cache.WlyyRedisVerifyCodeService;
import com.yihu.jw.healthyhouse.model.user.User;
import com.yihu.jw.healthyhouse.service.user.LoginService;
import com.yihu.jw.healthyhouse.service.user.UserService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.restmodel.wlyy.HouseUserContant;
import com.yihu.jw.util.security.RandomValidateCode;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -37,6 +39,8 @@ public class LoginController extends EnvelopRestEndpoint {
    private RestTemplate restTemplate;
    @Autowired
    private WlyyRedisVerifyCodeService wlyyRedisVerifyCodeService;
    @Autowired
    private UserService userService;
    /******************************************    用户相关    **********************************/
@ -52,10 +56,15 @@ public class LoginController extends EnvelopRestEndpoint {
        if (StringUtils.isEmpty(username)){
            failed("username 为空!");
        }
        //验证请求间隔超时,防止频繁获取验证码
        if (!wlyyRedisVerifyCodeService.isIntervalTimeout(clientId, username)) {
            throw new IllegalAccessException("SMS request frequency is too fast");
        //验证用户是否被冻结
        User user = userService.findByCode(username);
        if (HouseUserContant.activated_lock.equals(user)) {
            failed("该用户已被冻结,无法发送验证码!");
        }
        //验证请求间隔超时,防止频繁获取验证码
//        if (!wlyyRedisVerifyCodeService.isIntervalTimeout(clientId, username)) {
//            throw new IllegalAccessException("SMS request frequency is too fast");
//        }
        //发送短信获取验证码
        ResponseEntity<HashMap> result = loginService.sendSms(clientId,msgType,username);
        return result;
@ -154,13 +163,18 @@ public class LoginController extends EnvelopRestEndpoint {
            HttpServletRequest request,
            @ApiParam(name = "clientId", value = "应用id", required = true)@RequestParam(required = true, name = "clientId") String clientId,
            @ApiParam(name = "username", value = "账号", required = true)@RequestParam(required = true, name = "username") String username,
            @ApiParam(name = "password", value = "密码", required = true)@RequestParam(required = true, name = "password") String password) throws ManageException {
        User user = loginService.managerLogin(request,clientId,username, password);
        if (user !=null) {
            return success("登录成功",user);
        }else {
            return failed("登录失败");
            @ApiParam(name = "password", value = "密码", required = true)@RequestParam(required = true, name = "password") String password) {
        try {
            User user = loginService.managerLogin(request,clientId,username, password);
            if (user !=null) {
                return success("登录成功",user);
            }else {
                return failed("登录失败");
            }
        } catch (ManageException e) {
           return failed(e.getMessage());
        }
    }
    @GetMapping(value = "/getRandomImageCode")

+ 3 - 0
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/controller/user/FacilityUsedRecordController.java

@ -179,6 +179,9 @@ public class FacilityUsedRecordController extends EnvelopRestEndpoint {
    public ObjEnvelop facilityUsedRecordDetail(
            @ApiParam(name = "id", value = "使用记录ID", defaultValue = "")
            @RequestParam(value = "id") String id) throws Exception {
        if (id == null ){
            throw new ManageException("使用记录ID为空!");
        }
        Map<String, Object> usedRecordDetail = facilityUsedRecordService.getUsedRecordDetail(id);
        return success(usedRecordDetail);
    }

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

@ -139,11 +139,12 @@ public class UserController  extends EnvelopRestEndpoint {
    public Envelop updatePhone(
            @ApiParam(name = "clientId", value = "应用id", required = true)@RequestParam(required = true, name = "clientId") String clientId,
            @ApiParam(name = "userId", value = "用户Id", required = true)@RequestParam(required = true, name = "userId") String userId ,
            @ApiParam(name = "oldPhone", value = "旧安全手机号", required = true)@RequestParam(required = true, name = "oldPhone") String oldPhone ,
            @ApiParam(name = "newPhone", value = "新安全手机号", required = true)@RequestParam(required = true, name = "newPhone") String newPhone ,
            @ApiParam(name = "captcha", value = "短信验证码", required = true)@RequestParam(required = true, name = "captcha") String captcha ) throws ManageException {
        //验证码
        if (wlyyRedisVerifyCodeService.verification(clientId, newPhone, captcha)) {
        if (wlyyRedisVerifyCodeService.verification(clientId, oldPhone, captcha)) {
            userService.updateSecurePhone(userId,newPhone);
            return success("更新安全手机号码成功");
        } else {

+ 1 - 1
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/dao/user/FacilityUsedRecordDao.java

@ -14,7 +14,7 @@ public interface FacilityUsedRecordDao extends JpaRepository<FacilityUsedRecord,
    FacilityUsedRecord findById(String id);
    Long countByUserId(String userId);
    Long countAllByUserIdIsNotNull();
    Long countAllByCreateUserIsNotNull();
    long countByFacilitieCodeAndCreateUser(String facilitieCode,String createUser);
}

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

@ -33,11 +33,11 @@ public interface UserDao extends PagingAndSortingRepository<User, String>, JpaSp
    @Query("select sum (u.facilityUsedCount) from User u")
    Long sumFacilityUseCout();
    Long countAllByActivated(Integer activated);
    Long countAllByActivatedAndUserType(Integer activated,String userType);
    Long countAllByUserType(String userType);
    Long countAllByCreateTimeBetween(Date start,Date end);
    Long countAllByUserTypeAndCreateTimeBetween(String userType,Date start,Date end);
    User findByLoginCodeAndUserType(String loginCode,String userType);
    User findByTelephoneAndUserType(String telephone,String userType);

+ 1 - 1
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/service/user/FacilityUsedRecordService.java

@ -58,7 +58,7 @@ public class FacilityUsedRecordService extends BaseJpaService<FacilityUsedRecord
    }
    public Long countAll() {
        return facilityUsedRecordDao.countAllByUserIdIsNotNull();
        return facilityUsedRecordDao.countAllByCreateUserIsNotNull();
    }
    //根据用户id及设施编码统计历史导航记录总数

+ 12 - 0
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/service/user/LoginService.java

@ -1,6 +1,7 @@
package com.yihu.jw.healthyhouse.service.user;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.sun.org.apache.bcel.internal.generic.I2F;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.healthyhouse.cache.WlyyRedisVerifyCodeService;
import com.yihu.jw.healthyhouse.constant.LoginInfo;
@ -64,6 +65,10 @@ public class LoginService  extends BaseJpaService {
            user.setPassword(LoginInfo.DEFAULT_PASSWORD);
            user.setUserType(LoginInfo.USER_TYPE_PATIENT);
        }
        if (HouseUserContant.activated_lock.equals(user)) {
            throw new ManageException("该用户已被冻结!");
        }
        //已注册用户更改用户状态
        user.setActivated(HouseUserContant.activated_active);
        request.getSession().setAttribute(LoginInfo.IS_LOGIN, true);
@ -269,6 +274,9 @@ public class LoginService  extends BaseJpaService {
        if (user == null) {
            throw new ManageException("该管理员账号不存在!");
        } else {
            if (HouseUserContant.activated_lock.equals(user)) {
                throw new ManageException("该用户已被冻结!");
            }
            //已注册用户更改用户状态
            user.setActivated(HouseUserContant.activated_active);
            request.getSession().setAttribute(LoginInfo.IS_LOGIN, true);
@ -300,6 +308,10 @@ public class LoginService  extends BaseJpaService {
            String message = "该管理员账号不存在!";
            throw new ManageException(message);
        } else {
            if (HouseUserContant.activated_lock.equals(user)) {
                throw new ManageException("该用户已被冻结!");
            }
            if (!user.getPassword().equals(MD5.GetMD5Code(password + user.getSalt()))) {
                String message = "密码错误";
                throw new ManageException(message);

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

@ -287,7 +287,7 @@ public class UserService extends BaseJpaService<User, UserDao> {
    }
    /**
     * 获取 用户统计信息
     * 获取 健康小屋用户统计信息
     *
     * @return
     */
@ -298,9 +298,9 @@ public class UserService extends BaseJpaService<User, UserDao> {
        //今日新增数
        Date start = DateUtil.getDateStart();
        Date end = DateUtil.getDateEnd();
        Long newCount = userDao.countAllByCreateTimeBetween(start, end);
        Long newCount = userDao.countAllByUserTypeAndCreateTimeBetween(LoginInfo.USER_TYPE_PATIENT,start, end);
        //在线用户数
        Long activeCount = userDao.countAllByActivated(HouseUserContant.activated_active);
        Long activeCount = userDao.countAllByActivatedAndUserType(HouseUserContant.activated_active,LoginInfo.USER_TYPE_PATIENT);
        //用户设施使用总次数
        Long usePricilityCount = facilityUsedRecordService.countAll();
        result.put("totalCount",totalCount);