123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package com.care.client.service;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.date.DateUtil;
- import cn.hutool.core.util.IdUtil;
- import cn.hutool.core.util.StrUtil;
- import cn.hutool.crypto.SecureUtil;
- import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
- 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.enums.ValidStatusEnum;
- import com.care.common.service.CareMemberInfoService;
- import com.care.common.util.Result;
- import com.google.common.collect.Maps;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.util.Map;
- @Slf4j
- @Service
- public class AbstractPassportService {
- @Resource
- private RedisUtil redisUtil;
- @Resource
- private CareMemberInfoService careMemberInfoService;
- public Result<Object> cache(MemberInitParams params) {
- String token = IdUtil.fastUUID();
- // cache member
- CareMemberInfo member = null;
- if ("wx".equalsIgnoreCase(params.getLoginType())) {
- member = careMemberInfoService.detailByOpenid(params.getOpenid());
- if (member == null) {
- member = careMemberInfoService.detailByPhone(params.getPhone());
- if (member == null) {
- return Result.error("账号不存在!");
- }
- }
- if (ValidStatusEnum.INVALID.getValue().equals(member.getStatus())){
- return Result.error("用户已经停用");
- }
- } else if ("pwd".equalsIgnoreCase(params.getLoginType())) {
- member = careMemberInfoService.detailByPhone(params.getPhone());
- if (member == null) {
- return Result.error("账号不存在");
- }
- if (ValidStatusEnum.INVALID.getValue().equals(member.getStatus())){
- return Result.error("用户已经停用");
- }
- if (!StrUtil.equalsIgnoreCase(SecureUtil.md5(params.getPassword()), member.getPassword())) {
- return Result.error("账号密码不匹配");
- }
- }
- if (StringUtils.isBlank(member.getOpenId()) && StringUtils.isNotBlank(params.getOpenid())) {
- UpdateWrapper<CareMemberInfo> careMemberInfoUpdateWrapper = new UpdateWrapper<>();
- careMemberInfoUpdateWrapper.lambda().eq(CareMemberInfo::getId,member.getId()).set(CareMemberInfo::getOpenId,params.getOpenid());
- boolean bindFlag = this.careMemberInfoService.update(careMemberInfoUpdateWrapper);
- if (bindFlag) {
- member.setOpenId(params.getOpenid());
- }
- }
- MemberInfoVO memberInfoVO = new MemberInfoVO();
- BeanUtil.copyProperties(member,memberInfoVO);
- if (member.getBirthday()!=null){
- memberInfoVO.setAge(DateUtil.ageOfNow(member.getBirthday()));
- }
- redisUtil.hset(RedisKeyConstant.PINANBAO_LOGIN_INFO, token, memberInfoVO, RedisKeyConstant.PINANBAO_LOGIN_INFO_TIME);
- Map<String,Object> data = Maps.newHashMap();
- data.put("token", token);
- data.put("member", memberInfoVO);
- return Result.success(data);
- }
- public MemberInfoVO refreshMember(String token) {
- if (StrUtil.isNotBlank(token) && redisUtil.hHasKey(RedisKeyConstant.PINANBAO_LOGIN_INFO, token)) {
- MemberInfoVO oldMemberInfoVo = (MemberInfoVO)redisUtil.hget(RedisKeyConstant.PINANBAO_LOGIN_INFO, token);
- CareMemberInfo member = careMemberInfoService.getById(oldMemberInfoVo.getId());
- if (oldMemberInfoVo != null && member != null) {
- MemberInfoVO memberInfoVO = new MemberInfoVO();
- BeanUtil.copyProperties(member,memberInfoVO);
- redisUtil.hset(RedisKeyConstant.PINANBAO_LOGIN_INFO, token, memberInfoVO, RedisKeyConstant.PINANBAO_LOGIN_INFO_TIME);
- return memberInfoVO;
- }
- }
- return null;
- }
- }
|