交友项目【用户信息管理】实现

目录

1:用户信息管理

1.1:查询用户资料

1.1.1:接口地址

1.1.2:流程分析

1.1.3:代码实现

1.2:更新用户资料

1.2.1:接口地址

1.2.2:代码实现


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);
    }
}

猜你喜欢

转载自blog.csdn.net/m0_64550837/article/details/129974835