Commit d3bd8f23ece5963833596867325f323423f04012

Authored by xp.Huang
2 parents 2fdb139a 6bc3bbd7

Merge branch '20220424' into 'master'

20220424

See merge request huang/thingsboard3.3.2!84
@@ -5,7 +5,6 @@ import io.swagger.annotations.Api; @@ -5,7 +5,6 @@ import io.swagger.annotations.Api;
5 import io.swagger.annotations.ApiOperation; 5 import io.swagger.annotations.ApiOperation;
6 import lombok.RequiredArgsConstructor; 6 import lombok.RequiredArgsConstructor;
7 import org.jetbrains.annotations.NotNull; 7 import org.jetbrains.annotations.NotNull;
8 -import org.springframework.security.access.prepost.PreAuthorize;  
9 import org.springframework.validation.annotation.Validated; 8 import org.springframework.validation.annotation.Validated;
10 import org.springframework.web.bind.annotation.*; 9 import org.springframework.web.bind.annotation.*;
11 import org.thingsboard.server.common.data.StringUtils; 10 import org.thingsboard.server.common.data.StringUtils;
@@ -13,26 +12,21 @@ import org.thingsboard.server.common.data.User; @@ -13,26 +12,21 @@ import org.thingsboard.server.common.data.User;
13 import org.thingsboard.server.common.data.exception.ThingsboardException; 12 import org.thingsboard.server.common.data.exception.ThingsboardException;
14 import org.thingsboard.server.common.data.id.UserId; 13 import org.thingsboard.server.common.data.id.UserId;
15 import org.thingsboard.server.common.data.security.UserCredentials; 14 import org.thingsboard.server.common.data.security.UserCredentials;
16 -import org.thingsboard.server.common.data.security.model.JwtToken;  
17 import org.thingsboard.server.common.data.yunteng.common.DeleteGroup; 15 import org.thingsboard.server.common.data.yunteng.common.DeleteGroup;
18 import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; 16 import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO;
19 -import org.thingsboard.server.common.data.yunteng.dto.YtOpinionDTO; 17 +import org.thingsboard.server.common.data.yunteng.dto.UserDTO;
20 import org.thingsboard.server.common.data.yunteng.dto.YtThirdUserDTO; 18 import org.thingsboard.server.common.data.yunteng.dto.YtThirdUserDTO;
21 import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum; 19 import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum;
22 import org.thingsboard.server.common.data.yunteng.enums.ThirdPlatformEnum; 20 import org.thingsboard.server.common.data.yunteng.enums.ThirdPlatformEnum;
23 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; 21 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData;
24 import org.thingsboard.server.controller.BaseController; 22 import org.thingsboard.server.controller.BaseController;
25 -import org.thingsboard.server.dao.yunteng.entities.YtOpinionEntity;  
26 import org.thingsboard.server.dao.yunteng.entities.YtThirdUserEntity; 23 import org.thingsboard.server.dao.yunteng.entities.YtThirdUserEntity;
27 -import org.thingsboard.server.dao.yunteng.service.YtOpinionService;  
28 import org.thingsboard.server.dao.yunteng.service.YtThirdPlatformService; 24 import org.thingsboard.server.dao.yunteng.service.YtThirdPlatformService;
29 import org.thingsboard.server.service.security.auth.jwt.RefreshTokenRepository; 25 import org.thingsboard.server.service.security.auth.jwt.RefreshTokenRepository;
30 -import org.thingsboard.server.service.security.auth.rest.LoginResponse;  
31 import org.thingsboard.server.service.security.model.JwtTokenPair; 26 import org.thingsboard.server.service.security.model.JwtTokenPair;
32 import org.thingsboard.server.service.security.model.SecurityUser; 27 import org.thingsboard.server.service.security.model.SecurityUser;
33 import org.thingsboard.server.service.security.model.UserPrincipal; 28 import org.thingsboard.server.service.security.model.UserPrincipal;
34 import org.thingsboard.server.service.security.model.token.JwtTokenFactory; 29 import org.thingsboard.server.service.security.model.token.JwtTokenFactory;
35 -import org.thingsboard.server.service.security.permission.Operation;  
36 30
37 import java.util.UUID; 31 import java.util.UUID;
38 32
@@ -71,8 +65,8 @@ public class YtThirdPlatformController extends BaseController { @@ -71,8 +65,8 @@ public class YtThirdPlatformController extends BaseController {
71 @ApiOperation("绑定") 65 @ApiOperation("绑定")
72 public JwtTokenPair saveOrUpdateAlarmProfile( 66 public JwtTokenPair saveOrUpdateAlarmProfile(
73 @Validated @RequestBody YtThirdUserDTO dto) throws ThingsboardException { 67 @Validated @RequestBody YtThirdUserDTO dto) throws ThingsboardException {
74 - String tbUserId = thirdService.saveOrUpdate(dto);  
75 - return buildJwtToken(tbUserId); 68 + UserDTO userDto = thirdService.saveOrUpdate(dto);
  69 + return buildJwtToken(userDto);
76 } 70 }
77 71
78 @DeleteMapping 72 @DeleteMapping
@@ -87,20 +81,24 @@ public class YtThirdPlatformController extends BaseController { @@ -87,20 +81,24 @@ public class YtThirdPlatformController extends BaseController {
87 @ApiOperation("第三方登录") 81 @ApiOperation("第三方登录")
88 public JwtTokenPair login(@PathVariable("thirdId") String thirdId) 82 public JwtTokenPair login(@PathVariable("thirdId") String thirdId)
89 throws ThingsboardException { 83 throws ThingsboardException {
90 - String tbUserId = thirdService.login(thirdId);  
91 - return buildJwtToken(tbUserId); 84 + UserDTO userDto = thirdService.login(thirdId);
  85 + return buildJwtToken(userDto);
92 } 86 }
93 87
94 @NotNull 88 @NotNull
95 - private JwtTokenPair buildJwtToken(String tbUserId) {  
96 - String accessToken="";  
97 - String refreshToken="";  
98 - if(StringUtils.isNotEmpty(tbUserId)){  
99 - UserId userId = new UserId(UUID.fromString(tbUserId)); 89 + private JwtTokenPair buildJwtToken(UserDTO userDto) {
  90 + String accessToken = "";
  91 + String refreshToken = "";
  92 + if (userDto != null && StringUtils.isNotEmpty(userDto.getTbUser())) {
  93 + UserId userId = new UserId(UUID.fromString(userDto.getTbUser()));
100 User user = userService.findUserById(null, userId); 94 User user = userService.findUserById(null, userId);
101 UserCredentials credentials = userService.findUserCredentialsByUserId(user.getTenantId(), userId); 95 UserCredentials credentials = userService.findUserCredentialsByUserId(user.getTenantId(), userId);
102 - UserPrincipal principal = new UserPrincipal(UserPrincipal.Type.USER_NAME, user.getEmail()); 96 + String email = user.getEmail();
  97 + int emailIndex = email.indexOf("@");
  98 + UserPrincipal principal = new UserPrincipal(UserPrincipal.Type.USER_NAME, emailIndex > 0 ? email.substring(0, emailIndex) : email);
103 SecurityUser securityUser = new SecurityUser(user, credentials.isEnabled(), principal); 99 SecurityUser securityUser = new SecurityUser(user, credentials.isEnabled(), principal);
  100 + securityUser.setCurrentUserId(userDto.getId());
  101 + securityUser.setPlatformUserName(userDto.getUsername());
104 accessToken = tokenFactory.createAccessJwtToken(securityUser).getToken(); 102 accessToken = tokenFactory.createAccessJwtToken(securityUser).getToken();
105 refreshToken = refreshTokenRepository.requestRefreshToken(securityUser).getToken(); 103 refreshToken = refreshTokenRepository.requestRefreshToken(securityUser).getToken();
106 104
@@ -6,26 +6,18 @@ import com.baomidou.mybatisplus.core.metadata.IPage; @@ -6,26 +6,18 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
6 import com.fasterxml.jackson.databind.JsonNode; 6 import com.fasterxml.jackson.databind.JsonNode;
7 import lombok.RequiredArgsConstructor; 7 import lombok.RequiredArgsConstructor;
8 import lombok.extern.slf4j.Slf4j; 8 import lombok.extern.slf4j.Slf4j;
9 -import org.springframework.beans.factory.annotation.Autowired;  
10 import org.springframework.security.authentication.BadCredentialsException; 9 import org.springframework.security.authentication.BadCredentialsException;
11 -import org.springframework.security.authentication.InsufficientAuthenticationException;  
12 -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;  
13 import org.springframework.security.core.userdetails.UsernameNotFoundException; 10 import org.springframework.security.core.userdetails.UsernameNotFoundException;
14 import org.springframework.security.crypto.password.PasswordEncoder; 11 import org.springframework.security.crypto.password.PasswordEncoder;
15 import org.springframework.stereotype.Service; 12 import org.springframework.stereotype.Service;
16 import org.springframework.transaction.annotation.Transactional; 13 import org.springframework.transaction.annotation.Transactional;
17 import org.thingsboard.server.common.data.StringUtils; 14 import org.thingsboard.server.common.data.StringUtils;
18 -import org.thingsboard.server.common.data.audit.ActionType;  
19 -import org.thingsboard.server.common.data.id.EntityId;  
20 -import org.thingsboard.server.common.data.id.TenantId;  
21 -import org.thingsboard.server.common.data.id.UserId;  
22 -import org.thingsboard.server.common.data.security.Authority;  
23 import org.thingsboard.server.common.data.yunteng.core.cache.CacheUtils; 15 import org.thingsboard.server.common.data.yunteng.core.cache.CacheUtils;
24 import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; 16 import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException;
25 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; 17 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
26 import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; 18 import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO;
  19 +import org.thingsboard.server.common.data.yunteng.dto.UserDTO;
27 import org.thingsboard.server.common.data.yunteng.dto.UserDetailsDTO; 20 import org.thingsboard.server.common.data.yunteng.dto.UserDetailsDTO;
28 -import org.thingsboard.server.common.data.yunteng.dto.YtOpinionDTO;  
29 import org.thingsboard.server.common.data.yunteng.dto.YtThirdUserDTO; 21 import org.thingsboard.server.common.data.yunteng.dto.YtThirdUserDTO;
30 import org.thingsboard.server.common.data.yunteng.dto.request.CodeTTL; 22 import org.thingsboard.server.common.data.yunteng.dto.request.CodeTTL;
31 import org.thingsboard.server.common.data.yunteng.enums.MessageTypeEnum; 23 import org.thingsboard.server.common.data.yunteng.enums.MessageTypeEnum;
@@ -33,17 +25,14 @@ import org.thingsboard.server.common.data.yunteng.enums.MsgTemplatePurposeEnum; @@ -33,17 +25,14 @@ import org.thingsboard.server.common.data.yunteng.enums.MsgTemplatePurposeEnum;
33 import org.thingsboard.server.common.data.yunteng.enums.ThirdPlatformEnum; 25 import org.thingsboard.server.common.data.yunteng.enums.ThirdPlatformEnum;
34 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; 26 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData;
35 import org.thingsboard.server.dao.yunteng.entities.User; 27 import org.thingsboard.server.dao.yunteng.entities.User;
36 -import org.thingsboard.server.dao.yunteng.entities.YtOpinionEntity;  
37 import org.thingsboard.server.dao.yunteng.entities.YtThirdUserEntity; 28 import org.thingsboard.server.dao.yunteng.entities.YtThirdUserEntity;
38 import org.thingsboard.server.dao.yunteng.mapper.UserMapper; 29 import org.thingsboard.server.dao.yunteng.mapper.UserMapper;
39 -import org.thingsboard.server.dao.yunteng.mapper.YtOpinionMapper;  
40 import org.thingsboard.server.dao.yunteng.mapper.YtThirdPlatformMapper; 30 import org.thingsboard.server.dao.yunteng.mapper.YtThirdPlatformMapper;
41 -import org.thingsboard.server.dao.yunteng.service.*; 31 +import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
  32 +import org.thingsboard.server.dao.yunteng.service.YtThirdPlatformService;
42 33
43 -import java.util.List;  
44 import java.util.Objects; 34 import java.util.Objects;
45 import java.util.Optional; 35 import java.util.Optional;
46 -import java.util.UUID;  
47 36
48 import static org.thingsboard.server.common.data.yunteng.constant.FastIotConstants.CacheConfigKey.MOBILE_LOGIN_SMS_CODE; 37 import static org.thingsboard.server.common.data.yunteng.constant.FastIotConstants.CacheConfigKey.MOBILE_LOGIN_SMS_CODE;
49 import static org.thingsboard.server.common.data.yunteng.constant.FastIotConstants.DEFAULT_DELIMITER; 38 import static org.thingsboard.server.common.data.yunteng.constant.FastIotConstants.DEFAULT_DELIMITER;
@@ -52,140 +41,143 @@ import static org.thingsboard.server.common.data.yunteng.constant.FastIotConstan @@ -52,140 +41,143 @@ import static org.thingsboard.server.common.data.yunteng.constant.FastIotConstan
52 @Service 41 @Service
53 @RequiredArgsConstructor 42 @RequiredArgsConstructor
54 public class YtThirdPlatformServiceImpl extends AbstractBaseService<YtThirdPlatformMapper, YtThirdUserEntity> 43 public class YtThirdPlatformServiceImpl extends AbstractBaseService<YtThirdPlatformMapper, YtThirdUserEntity>
55 - implements YtThirdPlatformService {  
56 -  
57 - private final UserMapper userMapper;  
58 - private final CacheUtils cacheUtils;  
59 - private final PasswordEncoder passwordEncoder;  
60 - @Override  
61 - public YtPageData<YtThirdUserDTO> pageDatas(IPage<YtThirdUserEntity> pageInfrom, ThirdPlatformEnum platformName, String name) {  
62 - Wrapper pageFilter = new QueryWrapper<YtThirdUserEntity>()  
63 - .lambda()  
64 - .eq(pageInfrom != null,YtThirdUserEntity::getPlatformName,platformName)  
65 - .like(StringUtils.isNotEmpty(name),YtThirdUserEntity::getNickName,name);  
66 - IPage<YtThirdUserEntity> page = baseMapper.selectPage(pageInfrom, pageFilter);  
67 - return getPageData(page, YtThirdUserDTO.class);  
68 - }  
69 -  
70 -  
71 -  
72 -  
73 -  
74 - @Override  
75 - @Transactional(rollbackFor=Exception.class)  
76 - public String saveOrUpdate(YtThirdUserDTO dto) {  
77 - User user = null;  
78 - switch (dto.getLoginMethod()){  
79 - case PHONE:  
80 - user = checkPhoneCode(dto.getAppUserKey(),dto.getAppUserSecret());  
81 - break;  
82 - case ACCOUNT:  
83 - user = checkUsernamePassword(dto.getAppUserKey(),dto.getAppUserSecret());  
84 - break; 44 + implements YtThirdPlatformService {
  45 +
  46 + private final UserMapper userMapper;
  47 + private final CacheUtils cacheUtils;
  48 + private final PasswordEncoder passwordEncoder;
  49 +
  50 + @Override
  51 + public YtPageData<YtThirdUserDTO> pageDatas(IPage<YtThirdUserEntity> pageInfrom, ThirdPlatformEnum platformName, String name) {
  52 + Wrapper pageFilter = new QueryWrapper<YtThirdUserEntity>()
  53 + .lambda()
  54 + .eq(pageInfrom != null, YtThirdUserEntity::getPlatformName, platformName)
  55 + .like(StringUtils.isNotEmpty(name), YtThirdUserEntity::getNickName, name);
  56 + IPage<YtThirdUserEntity> page = baseMapper.selectPage(pageInfrom, pageFilter);
  57 + return getPageData(page, YtThirdUserDTO.class);
85 } 58 }
86 - if(user == null){  
87 - throw new YtDataValidationException(ErrorMessage.USER_NOT_EXISTS.getMessage());  
88 - }  
89 - if(StringUtils.isEmpty(user.getAvatar()) && StringUtils.isNotEmpty(dto.getAvatarUrl())){  
90 - user.setAvatar(dto.getAvatarUrl());  
91 - userMapper.updateById(user);  
92 - }  
93 - Wrapper filter = new QueryWrapper<YtThirdUserEntity>().lambda()  
94 - .eq(YtThirdUserEntity::getThirdUserId,dto.getThirdUserId());  
95 - YtThirdUserEntity oldVideo = baseMapper.selectOne(filter);  
96 - if (null == oldVideo) {  
97 - baseMapper.insert(dto.getEntity(YtThirdUserEntity.class));  
98 - }else {  
99 - dto.setId(oldVideo.getId());  
100 - baseMapper.updateById(dto.getEntity(YtThirdUserEntity.class));  
101 - }  
102 - return user.getTbUser();  
103 - }  
104 -  
105 - /**  
106 - * 验证用户名和密码有效性  
107 - * @param key 用户名  
108 - * @param secret 密码  
109 - * @return  
110 - */  
111 - private User checkUsernamePassword(String key,String secret){  
112 - Wrapper filter = new QueryWrapper<User>()  
113 - .lambda()  
114 - .eq(User::getUsername,key);  
115 - User user = userMapper.selectOne(filter);  
116 -  
117 - if (user == null) {  
118 - throw new UsernameNotFoundException("User not found: " + key);  
119 - }  
120 - if(!passwordEncoder.matches(secret, user.getPassword())){  
121 - throw new BadCredentialsException("Authentication Failed. Username or Password not valid.");  
122 - }  
123 - return user;  
124 - }  
125 -  
126 - /**  
127 - * 验证手机号和验证码有效性  
128 - * @param key 手机号  
129 - * @param secret 验证码  
130 - * @return  
131 - */  
132 - private User checkPhoneCode(String key,String secret){  
133 - Wrapper filter = new QueryWrapper<User>()  
134 - .lambda()  
135 - .eq(User::getPhoneNumber,key);  
136 - User users = userMapper.selectOne(filter);  
137 - if (users == null) {  
138 - throw new UsernameNotFoundException("phone number not found: " + key); 59 +
  60 +
  61 + @Override
  62 + @Transactional(rollbackFor = Exception.class)
  63 + public UserDTO saveOrUpdate(YtThirdUserDTO dto) {
  64 + User user = null;
  65 + switch (dto.getLoginMethod()) {
  66 + case PHONE:
  67 + user = checkPhoneCode(dto.getAppUserKey(), dto.getAppUserSecret());
  68 + break;
  69 + case ACCOUNT:
  70 + user = checkUsernamePassword(dto.getAppUserKey(), dto.getAppUserSecret());
  71 + break;
  72 + }
  73 + if (user == null) {
  74 + throw new YtDataValidationException(ErrorMessage.USER_NOT_EXISTS.getMessage());
  75 + }
  76 + if (StringUtils.isEmpty(user.getAvatar()) && StringUtils.isNotEmpty(dto.getAvatarUrl())) {
  77 + user.setAvatar(dto.getAvatarUrl());
  78 + userMapper.updateById(user);
  79 + }
  80 + dto.setAppUserId(user.getId());
  81 +
  82 + Wrapper filter = new QueryWrapper<YtThirdUserEntity>().lambda()
  83 + .eq(YtThirdUserEntity::getThirdUserId, dto.getThirdUserId());
  84 + YtThirdUserEntity oldVideo = baseMapper.selectOne(filter);
  85 + if (null == oldVideo) {
  86 + baseMapper.insert(dto.getEntity(YtThirdUserEntity.class));
  87 + } else {
  88 + dto.setId(oldVideo.getId());
  89 + baseMapper.updateById(dto.getEntity(YtThirdUserEntity.class));
  90 + }
  91 + return user.getDTO(UserDTO.class);
139 } 92 }
140 - String cacheKey =  
141 - MsgTemplatePurposeEnum.FOR_LOGIN.name()  
142 - + DEFAULT_DELIMITER  
143 - + MessageTypeEnum.PHONE_MESSAGE.name()  
144 - + DEFAULT_DELIMITER  
145 - + key;  
146 -  
147 - boolean correct =  
148 - cacheUtils  
149 - .get(MOBILE_LOGIN_SMS_CODE, cacheKey)  
150 - .map(  
151 - o -> {  
152 - CodeTTL codeTTL = (CodeTTL) o;  
153 - if (System.currentTimeMillis() - codeTTL.getSendTs() < 5 * 60 * 1000) {  
154 - return Objects.equals(codeTTL.getCode(), secret);  
155 - } else {  
156 - return false;  
157 - }  
158 - })  
159 - .orElse(false);  
160 - Optional<UserDetailsDTO> optionalUser;  
161 - if (!correct) {  
162 - throw new BadCredentialsException("验证码不正确"); 93 +
  94 + /**
  95 + * 验证用户名和密码有效性
  96 + *
  97 + * @param key 用户名
  98 + * @param secret 密码
  99 + * @return
  100 + */
  101 + private User checkUsernamePassword(String key, String secret) {
  102 + Wrapper filter = new QueryWrapper<User>()
  103 + .lambda()
  104 + .eq(User::getUsername, key)
  105 + .or(query -> query.eq(User::getEmail, key));
  106 + User user = userMapper.selectOne(filter);
  107 +
  108 + if (user == null) {
  109 + throw new UsernameNotFoundException("User not found: " + key);
  110 + }
  111 + if (!passwordEncoder.matches(secret, user.getPassword())) {
  112 + throw new BadCredentialsException("Authentication Failed. Username or Password not valid.");
  113 + }
  114 + return user;
163 } 115 }
164 - return users;  
165 - }  
166 116
  117 + /**
  118 + * 验证手机号和验证码有效性
  119 + *
  120 + * @param key 手机号
  121 + * @param secret 验证码
  122 + * @return
  123 + */
  124 + private User checkPhoneCode(String key, String secret) {
  125 + Wrapper filter = new QueryWrapper<User>()
  126 + .lambda()
  127 + .eq(User::getPhoneNumber, key);
  128 + User users = userMapper.selectOne(filter);
  129 + if (users == null) {
  130 + throw new UsernameNotFoundException("phone number not found: " + key);
  131 + }
  132 + String cacheKey =
  133 + MsgTemplatePurposeEnum.FOR_LOGIN.name()
  134 + + DEFAULT_DELIMITER
  135 + + MessageTypeEnum.PHONE_MESSAGE.name()
  136 + + DEFAULT_DELIMITER
  137 + + key;
  138 +
  139 + boolean correct =
  140 + cacheUtils
  141 + .get(MOBILE_LOGIN_SMS_CODE, cacheKey)
  142 + .map(
  143 + o -> {
  144 + CodeTTL codeTTL = (CodeTTL) o;
  145 + if (System.currentTimeMillis() - codeTTL.getSendTs() < 5 * 60 * 1000) {
  146 + return Objects.equals(codeTTL.getCode(), secret);
  147 + } else {
  148 + return false;
  149 + }
  150 + })
  151 + .orElse(false);
  152 + Optional<UserDetailsDTO> optionalUser;
  153 + if (!correct) {
  154 + throw new BadCredentialsException("验证码不正确");
  155 + }
  156 + return users;
  157 + }
167 158
168 159
169 - @Override  
170 - @Transactional(rollbackFor=Exception.class)  
171 - public boolean deleteDataByIds(DeleteDTO deleteDTO) {  
172 - Wrapper filter = new QueryWrapper<YtThirdUserEntity>().lambda()  
173 - .in(YtThirdUserEntity::getId,deleteDTO.getIds());  
174 - return baseMapper.delete(filter) > 0;  
175 - } 160 + @Override
  161 + @Transactional(rollbackFor = Exception.class)
  162 + public boolean deleteDataByIds(DeleteDTO deleteDTO) {
  163 + Wrapper filter = new QueryWrapper<YtThirdUserEntity>().lambda()
  164 + .in(YtThirdUserEntity::getId, deleteDTO.getIds());
  165 + return baseMapper.delete(filter) > 0;
  166 + }
176 167
177 - @Override  
178 - public String login(String thirdUserId) {  
179 - return baseMapper.login(thirdUserId);  
180 - } 168 + @Override
  169 + public UserDTO login(String thirdUserId) {
  170 + return baseMapper.login(thirdUserId)
  171 + .getDTO(UserDTO.class);
  172 + }
181 173
182 - @Override  
183 - public String accessToken(String appKey, String appSecret) {  
184 - return null;  
185 - } 174 + @Override
  175 + public String accessToken(String appKey, String appSecret) {
  176 + return null;
  177 + }
186 178
187 - @Override  
188 - public JsonNode message(String receiver, JsonNode message) {  
189 - return null;  
190 - } 179 + @Override
  180 + public JsonNode message(String receiver, JsonNode message) {
  181 + return null;
  182 + }
191 } 183 }
1 package org.thingsboard.server.dao.yunteng.mapper; 1 package org.thingsboard.server.dao.yunteng.mapper;
2 2
3 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 -import com.baomidou.mybatisplus.core.metadata.IPage;  
5 import org.apache.ibatis.annotations.Mapper; 4 import org.apache.ibatis.annotations.Mapper;
6 import org.apache.ibatis.annotations.Param; 5 import org.apache.ibatis.annotations.Param;
7 -import org.thingsboard.server.common.data.yunteng.dto.YtVideoDTO; 6 +import org.thingsboard.server.dao.yunteng.entities.User;
8 import org.thingsboard.server.dao.yunteng.entities.YtThirdUserEntity; 7 import org.thingsboard.server.dao.yunteng.entities.YtThirdUserEntity;
9 8
10 -import java.util.List;  
11 -  
12 /** 9 /**
13 * @author Administrator 10 * @author Administrator
14 */ 11 */
@@ -20,5 +17,5 @@ public interface YtThirdPlatformMapper extends BaseMapper<YtThirdUserEntity> { @@ -20,5 +17,5 @@ public interface YtThirdPlatformMapper extends BaseMapper<YtThirdUserEntity> {
20 * @param thirdId 17 * @param thirdId
21 * @return 18 * @return
22 */ 19 */
23 - String login(@Param("thirdId") String thirdId); 20 + User login(@Param("thirdId") String thirdId);
24 } 21 }
@@ -3,34 +3,36 @@ package org.thingsboard.server.dao.yunteng.service; @@ -3,34 +3,36 @@ package org.thingsboard.server.dao.yunteng.service;
3 import com.baomidou.mybatisplus.core.metadata.IPage; 3 import com.baomidou.mybatisplus.core.metadata.IPage;
4 import com.fasterxml.jackson.databind.JsonNode; 4 import com.fasterxml.jackson.databind.JsonNode;
5 import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; 5 import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO;
6 -import org.thingsboard.server.common.data.yunteng.dto.YtOpinionDTO; 6 +import org.thingsboard.server.common.data.yunteng.dto.UserDTO;
7 import org.thingsboard.server.common.data.yunteng.dto.YtThirdUserDTO; 7 import org.thingsboard.server.common.data.yunteng.dto.YtThirdUserDTO;
8 import org.thingsboard.server.common.data.yunteng.enums.ThirdPlatformEnum; 8 import org.thingsboard.server.common.data.yunteng.enums.ThirdPlatformEnum;
9 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; 9 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData;
10 -import org.thingsboard.server.dao.yunteng.entities.YtOpinionEntity; 10 +import org.thingsboard.server.dao.yunteng.entities.User;
11 import org.thingsboard.server.dao.yunteng.entities.YtThirdUserEntity; 11 import org.thingsboard.server.dao.yunteng.entities.YtThirdUserEntity;
12 12
13 /** 13 /**
14 * 第三方平台用户管理相关接口 14 * 第三方平台用户管理相关接口
15 * 例如:微信小程序、钉钉等。 15 * 例如:微信小程序、钉钉等。
  16 + *
16 * @author Administrator 17 * @author Administrator
17 */ 18 */
18 public interface YtThirdPlatformService extends BaseService<YtThirdUserEntity> { 19 public interface YtThirdPlatformService extends BaseService<YtThirdUserEntity> {
19 20
20 /** 21 /**
21 - * @param pageInfrom 分页配置信息  
22 - * @param name 第三方平台用户昵称 22 + * @param pageInfrom 分页配置信息
  23 + * @param name 第三方平台用户昵称
23 * @return 24 * @return
24 */ 25 */
25 - YtPageData<YtThirdUserDTO> pageDatas(IPage<YtThirdUserEntity> pageInfrom, ThirdPlatformEnum platformName,String name); 26 + YtPageData<YtThirdUserDTO> pageDatas(IPage<YtThirdUserEntity> pageInfrom, ThirdPlatformEnum platformName, String name);
26 27
27 28
28 -  
29 - /** 第三方平台用户与系统用户绑定 29 + /**
  30 + * 第三方平台用户与系统用户绑定
  31 + *
30 * @param dto 32 * @param dto
31 * @return 33 * @return
32 */ 34 */
33 - String saveOrUpdate(YtThirdUserDTO dto); 35 + UserDTO saveOrUpdate(YtThirdUserDTO dto);
34 36
35 /** 37 /**
36 * @param deleteDTO 38 * @param deleteDTO
@@ -40,16 +42,16 @@ public interface YtThirdPlatformService extends BaseService<YtThirdUserEntity> { @@ -40,16 +42,16 @@ public interface YtThirdPlatformService extends BaseService<YtThirdUserEntity> {
40 42
41 /** 43 /**
42 * 第三方登录 44 * 第三方登录
  45 + *
43 * @param thirdUserId 46 * @param thirdUserId
44 * @return 47 * @return
45 */ 48 */
46 - String login(String thirdUserId);  
47 -  
48 - 49 + UserDTO login(String thirdUserId);
49 50
50 51
51 /** 52 /**
52 * 访问令牌 53 * 访问令牌
  54 + *
53 * @param appKey 55 * @param appKey
54 * @param appSecret 56 * @param appSecret
55 * @return 57 * @return
@@ -58,10 +60,11 @@ public interface YtThirdPlatformService extends BaseService<YtThirdUserEntity> { @@ -58,10 +60,11 @@ public interface YtThirdPlatformService extends BaseService<YtThirdUserEntity> {
58 60
59 /** 61 /**
60 * 推送第三方程序消息 62 * 推送第三方程序消息
  63 + *
61 * @param receiver 64 * @param receiver
62 * @param message 65 * @param message
63 * @return 66 * @return
64 */ 67 */
65 - JsonNode message(String receiver,JsonNode message); 68 + JsonNode message(String receiver, JsonNode message);
66 69
67 } 70 }
@@ -3,8 +3,8 @@ @@ -3,8 +3,8 @@
3 3
4 <mapper namespace="org.thingsboard.server.dao.yunteng.mapper.YtThirdPlatformMapper"> 4 <mapper namespace="org.thingsboard.server.dao.yunteng.mapper.YtThirdPlatformMapper">
5 5
6 - <select id="login" resultType="string">  
7 - SELECT sus.tb_user 6 + <select id="login" resultType="org.thingsboard.server.dao.yunteng.entities.User">
  7 + SELECT sus.*
8 FROM iotfs_third_user base 8 FROM iotfs_third_user base
9 LEFT JOIN sys_user sus ON base.app_user_id = sus.id 9 LEFT JOIN sys_user sus ON base.app_user_id = sus.id
10 <where> 10 <where>