|
|
@@ -0,0 +1,87 @@
|
|
|
+package com.dataeasy.server.service.manager.impl;
|
|
|
+
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
+import cn.binarywang.wx.miniapp.api.WxMaService;
|
|
|
+import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
|
|
|
+import com.dataeasy.server.atomic.entity.User;
|
|
|
+import com.dataeasy.server.atomic.service.IUserService;
|
|
|
+import com.dataeasy.server.common.utils.Assert;
|
|
|
+import com.dataeasy.server.pojo.user.LoginRequest;
|
|
|
+import com.dataeasy.server.pojo.user.NicknameRequest;
|
|
|
+import com.dataeasy.server.pojo.user.UserInfoVO;
|
|
|
+import com.dataeasy.server.service.manager.ITokenManager;
|
|
|
+import com.dataeasy.server.service.manager.IUserManager;
|
|
|
+import com.dataeasy.server.utiis.UserUtils;
|
|
|
+import me.chanjar.weixin.common.error.WxErrorException;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author tyuio
|
|
|
+ * @version 1.0.0
|
|
|
+ * @description 用户 服务类
|
|
|
+ * @date 2024/11/30 14:28
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Service
|
|
|
+public class UserManagerImpl implements IUserManager {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IUserService userService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private WxMaService wxMaService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ITokenManager tokenManager;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public String login(LoginRequest request) throws WxErrorException {
|
|
|
+ // 微信登录
|
|
|
+ WxMaJscode2SessionResult wxMaJscode2SessionResult = wxMaService.jsCode2SessionInfo(request.getCode());
|
|
|
+
|
|
|
+ // 获取用户记录
|
|
|
+ User user = userService.getByMaOpenId(wxMaJscode2SessionResult.getOpenid());
|
|
|
+
|
|
|
+ // 存在责更新用户信息,没有则创建新用户
|
|
|
+ if (Objects.isNull(user)) {
|
|
|
+ user = new User();
|
|
|
+ user.setUnionId(wxMaJscode2SessionResult.getUnionid());
|
|
|
+ user.setMaOpenId(wxMaJscode2SessionResult.getOpenid());
|
|
|
+ user.setNickname(request.getNickname());
|
|
|
+ userService.insert(user);
|
|
|
+ } else {
|
|
|
+ User updateUser = new User();
|
|
|
+ updateUser.setId(user.getId());
|
|
|
+ updateUser.setNickname(request.getNickname());
|
|
|
+ userService.updateById(updateUser);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 创建token
|
|
|
+ return tokenManager.createToken(user.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public UserInfoVO queryUserInfo() {
|
|
|
+ Long currentUserId = UserUtils.getCurrentUserId();
|
|
|
+ User user = userService.getById(currentUserId);
|
|
|
+ UserInfoVO userInfoVO = new UserInfoVO();
|
|
|
+ BeanUtils.copyProperties(user, userInfoVO);
|
|
|
+ return userInfoVO;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void modifyNickname(NicknameRequest request) {
|
|
|
+ User user = new User();
|
|
|
+ user.setId(UserUtils.getCurrentUserId());
|
|
|
+ user.setNickname(request.getNickname());
|
|
|
+ userService.updateById(user);
|
|
|
+ }
|
|
|
+}
|