package com.care.client.service; import com.care.client.vo.MemberInfoVO; import com.care.client.vo.MemberInitParams; import com.care.common.cache.RedisKeyConstant; import com.care.common.cache.RedisUtil; import com.care.common.entity.CareMemberInfo; import com.care.common.exception.BDException; import com.care.common.service.CareMemberInfoService; import com.care.common.util.CheckUtils; import com.care.common.util.Result; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.digest.DigestUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @Slf4j @Service public class PassportService extends AbstractPassportService { @Resource private RedisUtil redisUtil; @Resource private WxPassportService wxPassportService; @Resource private CareMemberInfoService careMemberInfoService; public Result login(MemberInitParams params) { if ("wx".equalsIgnoreCase(params.getLoginType())) { CheckUtils.valueIsNull(params, "code"); Result result = wxPassportService.login(params); return result; } else if ("pwd".equalsIgnoreCase(params.getLoginType())) { CheckUtils.valueIsNull(params, "phone"); CheckUtils.valueIsNull(params, "password"); CareMemberInfo careMemberInfo = careMemberInfoService.detailByPhone(params.getPhone()); if (careMemberInfo == null){ return Result.error("手机号没注册"); } if (!DigestUtils.md5Hex(params.getPassword()).equals(careMemberInfo.getPassword())) { return Result.error("密码错误"); } cache(params); return Result.success(); } return Result.error(); } public void logout(String token) { CheckUtils.notNull(token, "token"); MemberInfoVO memberInfoVO = (MemberInfoVO) redisUtil.hget(RedisKeyConstant.PINANBAO_LOGIN_INFO, token); if (memberInfoVO != null) { redisUtil.hset(RedisKeyConstant.PINANBAO_LOGIN_INFO, token, null); } } public MemberInfoVO checkToken(String token) { CheckUtils.notNull(token, "token"); if (!redisUtil.hHasKey(RedisKeyConstant.PINANBAO_LOGIN_INFO, token)) { throw new BDException(400002, "TOKEN WAS WRONG :[{"+token+"}]" ); } return (MemberInfoVO) redisUtil.hget(RedisKeyConstant.PINANBAO_LOGIN_INFO, token); } public Boolean changePwd(String password,Long memberId) { CareMemberInfo careMemberInfo = careMemberInfoService.getById(memberId); careMemberInfo.setPassword(DigestUtils.md5Hex(password)); return careMemberInfoService.updateById(careMemberInfo); } }