12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package com.care.keeper.service;
- import com.care.common.cache.RedisKeyConstant;
- import com.care.common.cache.RedisUtil;
- import com.care.common.entity.CareSysUser;
- import com.care.common.exception.BDException;
- import com.care.common.service.CareSysUserService;
- import com.care.common.util.CheckUtils;
- import com.care.common.util.Result;
- import com.care.common.util.WxUtil;
- import com.care.keeper.vo.KeeperInfoVO;
- import com.care.keeper.vo.KeeperInitParams;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.codec.digest.DigestUtils;
- import org.springframework.stereotype.Service;
- import org.springframework.util.StringUtils;
- import javax.annotation.Resource;
- @Slf4j
- @Service
- public class KeeperPassportService extends AbstractKeeperPassportService{
- @Resource
- private RedisUtil redisUtil;
- @Resource
- private WxKeeperPassportService wxKeeperPassportService;
- @Resource
- private CareSysUserService careSysUserService;
- public Result<Object> login(KeeperInitParams params) {
- if ("wx".equalsIgnoreCase(params.getLoginType())) {
- CheckUtils.valueIsNull(params, "code");
- Result<Object> result = wxKeeperPassportService.login(params);
- return result;
- } else if ("pwd".equalsIgnoreCase(params.getLoginType())) {
- CheckUtils.valueIsNull(params, "phone");
- CheckUtils.valueIsNull(params, "password");
- CareSysUser careSysUser = careSysUserService.detailByPhone4Keeper(params.getPhone());
- if (careSysUser == null){
- return Result.error("手机号没注册");
- }
- if (!DigestUtils.md5Hex(params.getPassword()).equals(careSysUser.getPassword())) {
- return Result.error("密码错误");
- }
- cache(params);
- return Result.success();
- }
- return Result.error();
- }
- public void logout(String token) {
- CheckUtils.notNull(token, "token");
- KeeperInfoVO memberInfoVO = (KeeperInfoVO) redisUtil.hget(RedisKeyConstant.PINANSHOUHU_LOGIN_INFO, token);
- if (memberInfoVO != null) {
- redisUtil.hset(RedisKeyConstant.PINANSHOUHU_LOGIN_INFO, token, null);
- }
- }
- public KeeperInfoVO checkToken(String token) {
- CheckUtils.notNull(token, "token");
- if (!redisUtil.hHasKey(RedisKeyConstant.PINANSHOUHU_LOGIN_INFO, token)) {
- throw new BDException(400002, "TOKEN WAS WRONG :[{"+token+"}]" );
- }
- return (KeeperInfoVO) redisUtil.hget(RedisKeyConstant.PINANSHOUHU_LOGIN_INFO, token);
- }
- public Boolean changePwd(String password,Long userId) {
- CareSysUser careSysUser = careSysUserService.getById(userId);
- careSysUser.setPassword(DigestUtils.md5Hex(password));
- return careSysUserService.updateById(careSysUser);
- }
- public Boolean decodePhoneNumber(String code, String encryptedData,String iv) {
- KeeperInitParams params = (KeeperInitParams) redisUtil.hget(RedisKeyConstant.PINANSHOUHU_WX_LOGIN_INFO, code);
- String sessionKey = params.getSessionKey();
- String phone = WxUtil.getPhoneNumber(encryptedData,sessionKey,iv);
- if (StringUtils.isEmpty(phone)) {
- return false;
- }
- params.setPhone(phone);
- CareSysUser careSysUser = careSysUserService.detailByPhone4Keeper(phone);
- if (careSysUser == null) { //没注册
- return false;
- } else { //已经注册了
- cache(params);
- return true;
- }
- }
- }
|