目录
1:用户信息管理
1.1:查询用户资料
1.1.1:接口地址
接口地址:http://192.168.136.160:3000/project/19/interface/api/265
1.1.2:流程分析
前端注册登录用户成功之后,后端会根据这个用户信息生成一份token返回给前端,前端进行存放,下一次请求过来后端时,解析token,获取用户id,到关联的用户信息表中通过id查询到用户的详情信息,反馈给前端。
1.1.3:代码实现
与前端交互的app-server模块
controller层实现
/**
* @Author 爱吃豆的土豆、
* @Date 2023/4/4 11:29
*/
@RequestMapping("/users")
@RestController
public class UserController {
@Resource
private UserService userService;
/**
* 获得用户信息
* @return
*/
@GetMapping
public ResponseEntity finduserByPhone(){
Long userId = UserHolder.getUserId();
UserInfo userInfo = userService.finduserById(userId);
return ResponseEntity.ok(userInfo);
}
}
service层实现
/**
* @Author 爱吃豆的土豆、
* @Date 2023/3/30 9:55
*/
@Service
public class UserService {
@Resource
private SmsTemplate smsTemplate;
@Resource
private StringRedisTemplate stringRedisTemplate;
@Resource
private OssTemplate ossTemplate;
@DubboReference
private UserApi userApi;
@DubboReference
private UserInfoApi userInfoApi;
public UserInfo finduserById(Long userId) {
UserInfo user = userInfoApi.findUser(userId);
return user;
}
}
统一封装接口的模块
/**
* @Author 爱吃豆的土豆、
* @Date 2023/4/3 9:37
*/
public interface UserInfoApi {
public UserInfo findUser(Long id);
}
提供者模块(提供相关接口的实现)
/**
* @Author 爱吃豆的土豆、
* @Date 2023/4/3 9:03
*/
@DubboService
public class UserInfoApilmpl implements UserInfoApi {
@Resource
private UserInfoMapper userInfoMapper;
@Override
public UserInfo findUser(Long id) {
UserInfo userInfo = this.userInfoMapper.selectById(id);
return userInfo;
}
}
1.2:更新用户资料
1.2.1:接口地址
接口地址:http://192.168.136.160:3000/project/19/interface/api/259
1.2.2:代码实现
与前端交互的app-server模块
controller层实现
/**
* @Author 爱吃豆的土豆、
* @Date 2023/4/4 11:29
*/
@RequestMapping("/users")
@RestController
public class UserController {
@Resource
private UserService userService;
/**
* 修改用户信息
*/
@PutMapping
public ResponseEntity editUser(@RequestBody UserInfo userInfo){
//解析出来Jwt用户密码
userService.editUser(userInfo,UserHolder.getUserId());
return ResponseEntity.ok(null);
}
}
service层实现
/**
* @Author 爱吃豆的土豆、
* @Date 2023/3/30 9:55
*/
@Service
public class UserService {
@Resource
private SmsTemplate smsTemplate;
@Resource
private StringRedisTemplate stringRedisTemplate;
@Resource
private OssTemplate ossTemplate;
@DubboReference
private UserApi userApi;
@DubboReference
private UserInfoApi userInfoApi;
public void editUser(UserInfo userInfo, Long userId) {
userInfoApi.editUser(userInfo,userId);
}
}
统一封装接口的模块
/**
* @Author 爱吃豆的土豆、
* @Date 2023/4/3 9:37
*/
public interface UserInfoApi {
public void editUser(UserInfo userInfo,Long id);
}
提供者模块(提供相关接口的实现)
/**
* @Author 爱吃豆的土豆、
* @Date 2023/4/3 9:03
*/
@DubboService
public class UserInfoApilmpl implements UserInfoApi {
@Resource
private UserInfoMapper userInfoMapper;
@Override
public void editUser(UserInfo userInfo, Long id) {
userInfo.setId(id);
this.userInfoMapper.updateById(userInfo);
}
}