| | |
| | | package com.ruoyi.account.service.impl; |
| | | |
| | | import com.alipay.api.response.AlipaySystemOauthTokenResponse; |
| | | import com.alipay.api.response.AlipayUserInfoShareResponse; |
| | | import com.alipay.api.response.AlipayUserUserinfoShareResponse; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | |
| | | import com.ruoyi.account.api.model.TAppUser; |
| | | import com.ruoyi.account.mapper.TAppUserMapper; |
| | | import com.ruoyi.account.service.TAppUserService; |
| | | import com.ruoyi.account.service.TInviteUserService; |
| | | import com.ruoyi.account.wx.model.WeixinProperties; |
| | | import com.ruoyi.account.wx.pojo.AppletUserDecodeData; |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | | import com.ruoyi.common.security.service.TokenService; |
| | | import com.ruoyi.system.api.model.LoginUserApplet; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | public class TAppUserServiceImpl extends ServiceImpl<TAppUserMapper, TAppUser> implements TAppUserService { |
| | | @Autowired |
| | | private TokenService tokenService; |
| | | @Autowired |
| | | private TInviteUserService inviteUserService; |
| | | @Override |
| | | public Map<String, Object> wxLogin(AppletUserDecodeData appletUserDecodeData) { |
| | | public Map<String, Object> wxLogin(AppletUserDecodeData appletUserDecodeData,Long inviteUserId) { |
| | | // 通过手机号查询用户,是否已存在手动导入用户,包含支付宝用户 |
| | | TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class) |
| | | .eq(TAppUser::getPhone, appletUserDecodeData.getPhoneNumber()) |
| | |
| | | appUser.setPhone(appletUserDecodeData.getPhoneNumber()); |
| | | } |
| | | } |
| | | if(Objects.nonNull(appUser.getStatus())){ |
| | | throwInfo(appUser.getStatus()); |
| | | } |
| | | appUser.setInviteUserId(inviteUserId); |
| | | appUser.setAvatar(appletUserDecodeData.getAvatarUrl()); |
| | | appUser.setCity(appletUserDecodeData.getCity()); |
| | | appUser.setName(appletUserDecodeData.getNickName()); |
| | | appUser.setProvince(appletUserDecodeData.getProvince()); |
| | | appUser.setWxOpenid(appletUserDecodeData.getOpenId()); |
| | | this.saveOrUpdate(appUser); |
| | | inviteUserService.saveInviteUser(appUser.getId(), inviteUserId); |
| | | return this.getUserInfo(appUser); |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response, AlipayUserUserinfoShareResponse userInfo) { |
| | | public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response,String phone,Long inviteUserId) { |
| | | // 通过手机号查询用户,是否已存在手动导入用户,包含微信用户 |
| | | TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class) |
| | | .eq(TAppUser::getPhone, userInfo.getMobile()) |
| | | .eq(TAppUser::getPhone, phone) |
| | | .isNull(TAppUser::getAliOpenid) |
| | | .last("LIMIT 1")); |
| | | if(Objects.isNull(appUser)){ |
| | | // 先使用openId和当前手机号进行查询 |
| | | appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class) |
| | | .eq(TAppUser::getAliOpenid, response.getOpenId()) |
| | | .eq(TAppUser::getPhone, userInfo.getMobile()) |
| | | .eq(TAppUser::getPhone, phone) |
| | | .last("LIMIT 1")); |
| | | if(Objects.isNull(appUser)){ |
| | | appUser = new TAppUser(); |
| | | appUser.setPhone(userInfo.getMobile()); |
| | | appUser.setPhone(phone); |
| | | } |
| | | } |
| | | appUser.setAvatar(userInfo.getAvatar()); |
| | | appUser.setCity(userInfo.getCity()); |
| | | appUser.setName(userInfo.getNickName()); |
| | | appUser.setProvince(userInfo.getProvince()); |
| | | if(Objects.nonNull(appUser.getStatus())){ |
| | | throwInfo(appUser.getStatus()); |
| | | } |
| | | appUser.setInviteUserId(inviteUserId); |
| | | appUser.setAliOpenid(response.getOpenId()); |
| | | this.saveOrUpdate(appUser); |
| | | inviteUserService.saveInviteUser(appUser.getId(), inviteUserId); |
| | | return this.getUserInfo(appUser); |
| | | } |
| | | // @Override |
| | | // public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response, AlipayUserInfoShareResponse userInfo) { |
| | | // // 通过手机号查询用户,是否已存在手动导入用户,包含微信用户 |
| | | // TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class) |
| | | // .eq(TAppUser::getPhone, userInfo.getMobile()) |
| | | // .isNull(TAppUser::getAliOpenid) |
| | | // .last("LIMIT 1")); |
| | | // if(Objects.isNull(appUser)){ |
| | | // // 先使用openId和当前手机号进行查询 |
| | | // appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class) |
| | | // .eq(TAppUser::getAliOpenid, response.getOpenId()) |
| | | // .eq(TAppUser::getPhone, userInfo.getMobile()) |
| | | // .last("LIMIT 1")); |
| | | // if(Objects.isNull(appUser)){ |
| | | // appUser = new TAppUser(); |
| | | // appUser.setPhone(userInfo.getMobile()); |
| | | // } |
| | | // } |
| | | // if(Objects.nonNull(appUser.getStatus())){ |
| | | // throwInfo(appUser.getStatus()); |
| | | // } |
| | | // appUser.setAvatar(userInfo.getAvatar()); |
| | | // appUser.setCity(userInfo.getCity()); |
| | | // appUser.setName(userInfo.getNickName()); |
| | | // appUser.setProvince(userInfo.getProvince()); |
| | | // appUser.setAliOpenid(response.getOpenId()); |
| | | // this.saveOrUpdate(appUser); |
| | | // return this.getUserInfo(appUser); |
| | | // } |
| | | |
| | | @Override |
| | | public Map<String, Object> getUserInfo(TAppUser appUser) { |
| | |
| | | tokenInfos.put("info",loginUserApplet); |
| | | return tokenInfos; |
| | | } |
| | | |
| | | @Override |
| | | public void throwInfo(Integer status){ |
| | | switch (status){ |
| | | case 2: |
| | | throw new ServiceException("账号被冻结,请联系管理员"); |
| | | case 3: |
| | | throw new ServiceException("账号已注销,请重新注册使用"); |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | } |