PassportService.java 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package com.care.client.service;
  2. import com.care.client.vo.MemberInfoVO;
  3. import com.care.client.vo.MemberInitParams;
  4. import com.care.common.cache.RedisKeyConstant;
  5. import com.care.common.cache.RedisUtil;
  6. import com.care.common.entity.CareMemberInfo;
  7. import com.care.common.exception.BDException;
  8. import com.care.common.service.CareMemberInfoService;
  9. import com.care.common.util.CheckUtils;
  10. import com.care.common.util.Result;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.apache.commons.codec.digest.DigestUtils;
  13. import org.springframework.stereotype.Service;
  14. import javax.annotation.Resource;
  15. @Slf4j
  16. @Service
  17. public class PassportService extends AbstractPassportService {
  18. @Resource
  19. private RedisUtil redisUtil;
  20. @Resource
  21. private WxPassportService wxPassportService;
  22. @Resource
  23. private CareMemberInfoService careMemberInfoService;
  24. public Result<Object> login(MemberInitParams params) {
  25. if ("wx".equalsIgnoreCase(params.getLoginType())) {
  26. CheckUtils.valueIsNull(params, "code");
  27. Result<Object> result = wxPassportService.login(params);
  28. return result;
  29. } else if ("pwd".equalsIgnoreCase(params.getLoginType())) {
  30. CheckUtils.valueIsNull(params, "phone");
  31. CheckUtils.valueIsNull(params, "password");
  32. CareMemberInfo careMemberInfo = careMemberInfoService.detailByPhone(params.getPhone());
  33. if (careMemberInfo == null){
  34. return Result.error("手机号没注册");
  35. }
  36. if (!DigestUtils.md5Hex(params.getPassword()).equals(careMemberInfo.getPassword())) {
  37. return Result.error("密码错误");
  38. }
  39. cache(params);
  40. return Result.success();
  41. }
  42. return Result.error();
  43. }
  44. public void logout(String token) {
  45. CheckUtils.notNull(token, "token");
  46. MemberInfoVO memberInfoVO = (MemberInfoVO) redisUtil.hget(RedisKeyConstant.PINANBAO_LOGIN_INFO, token);
  47. if (memberInfoVO != null) {
  48. redisUtil.hset(RedisKeyConstant.PINANBAO_LOGIN_INFO, token, null);
  49. }
  50. }
  51. public MemberInfoVO checkToken(String token) {
  52. CheckUtils.notNull(token, "token");
  53. if (!redisUtil.hHasKey(RedisKeyConstant.PINANBAO_LOGIN_INFO, token)) {
  54. throw new BDException(400002, "TOKEN WAS WRONG :[{"+token+"}]" );
  55. }
  56. return (MemberInfoVO) redisUtil.hget(RedisKeyConstant.PINANBAO_LOGIN_INFO, token);
  57. }
  58. public Boolean changePwd(String password,Long memberId) {
  59. CareMemberInfo careMemberInfo = careMemberInfoService.getById(memberId);
  60. careMemberInfo.setPassword(DigestUtils.md5Hex(password));
  61. return careMemberInfoService.updateById(careMemberInfo);
  62. }
  63. }