前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务项目:尚融宝(60)(核心业务流程:个人中心)

微服务项目:尚融宝(60)(核心业务流程:个人中心)

作者头像
一个风轻云淡
发布2022-11-15 15:20:20
8830
发布2022-11-15 15:20:20
举报
文章被收录于专栏:java学习java

一、资金列表接口

1、Controller

TransFlowController

代码语言:javascript
复制
@Api(tags = "资金记录")
@RestController
@RequestMapping("/api/core/transFlow")
@Slf4j
public class TransFlowController {

    @Resource
    private TransFlowService transFlowService;

    @ApiOperation("获取列表")
    @GetMapping("/list")
    public R list(HttpServletRequest request) {
        String token = request.getHeader("token");
        Long userId = JwtUtils.getUserId(token);
        List<TransFlow> list = transFlowService.selectByUserId(userId);
        return R.ok().data("list", list);
    }
}

2、Service

接口:TransFlowService

List<TransFlow> selectByUserId(Long userId);

实现:TransFlowServiceImpl 

代码语言:javascript
复制
@Override
public List<TransFlow> selectByUserId(Long userId) {

    QueryWrapper<TransFlow> queryWrapper = new QueryWrapper<>();
    queryWrapper
        .eq("user_id", userId)
        .orderByDesc("id");
    return baseMapper.selectList(queryWrapper);
}

二、前端整合

脚本

pages/user/fund.vue

代码语言:javascript
复制
fetchTransFlowList() {
  this.$axios.$get('/api/core/transFlow/list').then((response) => {
    this.transFlowList = response.data.list
  })
},

一、后端接口

1、创建VO

代码语言:javascript
复制
@Data
@ApiModel(description = "首页用户信息")
public class UserIndexVO {

    @ApiModelProperty(value = "用户id")
    private Long userId;

    @ApiModelProperty(value = "用户姓名")
    private String name;

    @ApiModelProperty(value = "用户昵称")
    private String nickName;

    @ApiModelProperty(value = "1:出借人 2:借款人")
    private Integer userType;

    @ApiModelProperty(value = "用户头像")
    private String headImg;

    @ApiModelProperty(value = "绑定状态(0:未绑定,1:绑定成功 -1:绑定失败)")
    private Integer bindStatus;

    @ApiModelProperty(value = "帐户可用余额")
    private BigDecimal amount;

    @ApiModelProperty(value = "冻结金额")
    private BigDecimal freezeAmount;

    @ApiModelProperty(value = "上次登录时间")
    private LocalDateTime lastLoginTime;

}

2、Controller

UserInfoController

代码语言:javascript
复制
@ApiOperation("获取个人空间用户信息")
@GetMapping("/auth/getIndexUserInfo")
public R getIndexUserInfo(HttpServletRequest request) {
    String token = request.getHeader("token");
    Long userId = JwtUtils.getUserId(token);
    UserIndexVO userIndexVO = userInfoService.getIndexUserInfo(userId);
    return R.ok().data("userIndexVO", userIndexVO);
}

3、Service

接口:UserInfoService

代码语言:javascript
复制
UserIndexVO getIndexUserInfo(Long userId);

实现:UserInfoServiceImpl 

代码语言:javascript
复制
@Override
public UserIndexVO getIndexUserInfo(Long userId) {
    
    //用户信息
    UserInfo userInfo = baseMapper.selectById(userId);

    //账户信息
    QueryWrapper<UserAccount> userAccountQueryWrapper = new QueryWrapper<>();
    userAccountQueryWrapper.eq("user_id", userId);
    UserAccount userAccount = userAccountMapper.selectOne(userAccountQueryWrapper);

    //登录信息
    QueryWrapper<UserLoginRecord> userLoginRecordQueryWrapper = new QueryWrapper<>();
    userLoginRecordQueryWrapper
        .eq("user_id", userId)
        .orderByDesc("id")
        .last("limit 1");
    UserLoginRecord userLoginRecord = userLoginRecordMapper.selectOne(userLoginRecordQueryWrapper);
    result.put("userLoginRecord", userLoginRecord);

    //组装结果数据
    UserIndexVO userIndexVO = new UserIndexVO();
    userIndexVO.setUserId(userInfo.getId());
    userIndexVO.setUserType(userInfo.getUserType());
    userIndexVO.setName(userInfo.getName());
    userIndexVO.setNickName(userInfo.getNickName());
    userIndexVO.setHeadImg(userInfo.getHeadImg());
    userIndexVO.setBindStatus(userInfo.getBindStatus());
    userIndexVO.setAmount(userAccount.getAmount());
    userIndexVO.setFreezeAmount(userAccount.getFreezeAmount());
    userIndexVO.setLastLoginTime(userLoginRecord.getCreateTime());

    return userIndexVO;
}

二、前端整合

脚本

pages/user/index.vue

fetchUserData() {   this.axios     .get('/api/core/userInfo/auth/getIndexUserInfo')     .then((response) => {       this.userIndexVO = response.data.userIndexVO     }) },

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、资金列表接口
    • 1、Controller
      • 2、Service
      • 二、前端整合
        • 脚本
        • 一、后端接口
          • 1、创建VO
            • 2、Controller
            • 3、Service
            • 二、前端整合
              • 脚本
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档