WxUserServiceImpl.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package com.caimei.service.wechat.impl;
  2. import com.caimei.components.RedisService;
  3. import com.caimei.mapper.cmMapper.*;
  4. import com.caimei.model.ResponseJson;
  5. import com.caimei.model.vo.AuthFormVo;
  6. import com.caimei.model.vo.ShopFormVo;
  7. import com.caimei.model.vo.WxClubUserVo;
  8. import com.caimei.service.auth.ShopService;
  9. import com.caimei.service.wechat.WxUserService;
  10. import com.caimei.utils.CodeUtil;
  11. import com.caimei.utils.Md5Util;
  12. import com.caimei.utils.SmsUtils;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.springframework.beans.factory.annotation.Value;
  15. import org.springframework.stereotype.Service;
  16. import javax.annotation.Resource;
  17. import java.util.HashMap;
  18. import java.util.Map;
  19. /**
  20. * Description
  21. *
  22. * @author : Aslee
  23. * @date : 2021/7/15
  24. */
  25. @Slf4j
  26. @Service
  27. public class WxUserServiceImpl implements WxUserService {
  28. @Resource
  29. private RedisService redisService;
  30. @Resource
  31. private ClubMapper clubMapper;
  32. @Resource
  33. private AuthMapper authMapper;
  34. @Resource
  35. private ShopMapper shopMapper;
  36. @Value("${spring.profiles.active}")
  37. private String active;
  38. @Override
  39. public ResponseJson<Map<String, Object>> getUserInfo(String mobile, Integer authUserId, Integer clubUserId, Integer authId) {
  40. HashMap<String, Object> map = new HashMap<>(2);
  41. // 机构用户
  42. WxClubUserVo clubUser = clubMapper.getWxClubUser(mobile, null, authUserId, null, clubUserId);
  43. // 授权机构
  44. AuthFormVo auth = null;
  45. // 机构用户已注册
  46. if (null != clubUser && null != clubUser.getAuthId()) {
  47. auth = authMapper.getAuthBaseInfo(authUserId, clubUser.getAuthId());
  48. }
  49. if (null != authId) {
  50. auth = authMapper.getAuthBaseInfo(authUserId, authId);
  51. }
  52. map.put("clubUser", clubUser);
  53. map.put("auth", auth);
  54. return ResponseJson.success(map);
  55. }
  56. @Override
  57. public ResponseJson sendLoginCode(String mobile, Integer authUserId, Integer type) {
  58. if (2 == type) {
  59. // 获取手机号对应机构用户
  60. WxClubUserVo clubUser = clubMapper.getWxClubUser(mobile, null, authUserId, null, null);
  61. if (null == clubUser || 1 != clubUser.getStatus()) {
  62. return ResponseJson.error("用户不存在");
  63. }
  64. }
  65. // 获取供应商名称
  66. ShopFormVo shop = shopMapper.getShopByUserId(authUserId);
  67. String shopName = "";
  68. if (null == shop) {
  69. return ResponseJson.error("供应商不存在");
  70. } else {
  71. shopName = shop.getShopName();
  72. }
  73. String verifyCode = "prod".equals(active) ? CodeUtil.generateCodeInt(6) : "666666";
  74. String content = "("+ shopName +")您认证通短信验证码为:" + verifyCode + ",该验证码 " + (1 == type ? 30 : 5) + " 分钟内有效,请勿泄漏于他人。【采美网提供技术支持】";
  75. Boolean sendSms = SmsUtils.sendSms(1, mobile, content);
  76. String msgType = 1 == type ? "注册" : 2 == type ? "忘记密码" : "";
  77. if (!sendSms) {
  78. log.info(msgType + "验证码发送失败,手机号:" + mobile);
  79. return ResponseJson.error("发送失败,请确认手机号无误");
  80. } else {
  81. log.info(msgType + "验证码发送成功,手机号:" + mobile + ",验证码:" + verifyCode);
  82. }
  83. log.info(content);
  84. long expireTime = 300L;
  85. if (1 == type) {
  86. expireTime = 60 * 30L;
  87. }
  88. redisService.set("code:" + mobile, verifyCode, expireTime);
  89. return ResponseJson.success("发送成功");
  90. }
  91. @Override
  92. public ResponseJson updatePassword(String mobile, String verifyCode, String password, Integer authUserId) {
  93. // 获取手机号对应机构用户
  94. WxClubUserVo clubUser = clubMapper.getWxClubUser(mobile, null, authUserId, null, null);
  95. if (null == clubUser || 1 != clubUser.getStatus()) {
  96. return ResponseJson.error("用户不存在");
  97. }
  98. // 校验验证码是否正确
  99. String redisVerifyCode = null == redisService.get("code:" + mobile) ? null : redisService.get("code:" + mobile).toString();
  100. if (!verifyCode.equals(redisVerifyCode)) {
  101. return ResponseJson.error("验证码错误,请重新输入", null);
  102. }
  103. String md5Password = Md5Util.md5(password);
  104. clubMapper.updatePassword(mobile, md5Password, authUserId);
  105. return ResponseJson.success("密码修改成功");
  106. }
  107. }