src/main/java/com/mzl/flower/mapper/system/UserMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/mapper/system/UserWechatMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/service/system/UserService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/system/UserWechatMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/mzl/flower/mapper/system/UserMapper.java
@@ -23,7 +23,7 @@ String selectUserRoleDesc(@Param("userId") String userId); User getByOpenID(@Param("openId") String openId, List<String> userTypes); List<User> getByOpenID(@Param("openId") String openId, List<String> userTypes); List<SmsSelectVO> getSelectList(@Param("idList") List<String> idList); src/main/java/com/mzl/flower/mapper/system/UserWechatMapper.java
@@ -1,11 +1,21 @@ package com.mzl.flower.mapper.system; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mzl.flower.entity.system.User; import com.mzl.flower.entity.system.UserWechat; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; @Repository public interface UserWechatMapper extends BaseMapper<UserWechat> { /** * 根据用户类型判断当前用户是否已经绑定了微信 * @param openId * @return */ List<User> selectUserByOpenId(@Param("openId") String openId,@Param("userType") String userType); } src/main/java/com/mzl/flower/service/system/UserService.java
@@ -96,10 +96,11 @@ , String imgUrl, String nickname,String userType){ List<String> userTypes = new ArrayList<>(); userTypes.add(userType); User user = userMapper.getByOpenID(openId,userTypes); if(user == null){ List<User> userList = userMapper.getByOpenID(openId,userTypes); if(CollectionUtils.isEmpty(userList)){ throw new ValidationException("请注册账号后至\"个人中心-绑定微信\"后再使用微信登录"); } User user=userList.get(0); // user.setNickName(nickname); user.setNickName(user.getLoginName()); user.setPicture(imgUrl); @@ -119,6 +120,19 @@ } public void bindWechat(String userId, String openId, String unionId, String sessionKey, BindWechatDTO dto) { // 查看微信是否已经绑定过用户 User user = userMapper.selectById(userId); if(ObjectUtils.isEmpty(user)){ throw new ValidationException("当前用户不存在"); } List<User> userList=wechatMapper.selectUserByOpenId(openId,user.getType()); if(!CollectionUtils.isEmpty(userList)){ throw new ValidationException("该微信已绑定其他账号"); } UserWechat wechat = wechatMapper.selectOne(new LambdaQueryWrapper<UserWechat>() .eq(UserWechat::getUserId,userId)); if(wechat == null){ @@ -137,6 +151,8 @@ wechat.setRealName(dto.getRealName()); wechatMapper.updateById(wechat); } } @@ -504,8 +520,11 @@ public User getExistUserByOpenId(String openId, String sessionKey, String unionId, String userType) { List<String> userTypes = new ArrayList<>(); userTypes.add(userType); User user = userMapper.getByOpenID(openId,userTypes); return user; List<User> userList = userMapper.getByOpenID(openId,userTypes); if(!CollectionUtils.isEmpty(userList)){ return userList.get(0); } return null; } public void registWxUser(CreateWechatUserDTO dto) { src/main/resources/mapper/system/UserWechatMapper.xml
对比新文件 @@ -0,0 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mzl.flower.mapper.system.UserWechatMapper"> <select id="selectUserByOpenId" resultType="com.mzl.flower.entity.system.User"> select * from t_user u left join t_user_wechat uw on u.id =uw.user_id where uw.open_id=#{openId} and u.type=#{userType} </select> </mapper>