eggjs 怎么实现新增账单接口?

简介: eggjs 怎么实现新增账单接口?

通过前面的建表,我们可以找到对应的字段如下图:

455e533dd06348449cd7a48192db6693.png



实现账单新增接口


1、在控制层新建bill.js


764444bd272749649fe38dd5f24e0c30.png

'use strict';
const Controller = require('egg').Controller;
class BillController extends Controller {
  async add() {
    const { ctx, app } = this;
    // 1、获取请求中携带的参数
    const { amount, type_id, type_name, date, pay_type, remark = '' } = ctx.request.body;
    // 2、判空处理
    if (!amount || !type_id || !type_name || !date || !pay_type) {
      ctx.body = {
        status: 400,
        desc: '参数错误',
        data: null
      }
      return;
    }
    try {
      // 3、拿到 token 获取用户信息
      const token = ctx.request.header.authorization;
      const decode = await app.jwt.verify(token, app.config.jwt.secret);
      if (!decode) return;
      // user_id 默认添加到每个账单项,用于滤出
      let user_id = decode.id
      const result = await ctx.service.bill.add({
        amount,
        type_id,
        type_name,
        date,
        pay_type,
        remark,
        user_id
      });
      ctx.body = {
        status: 200,
        desc: '请求成功',
        data: null
      }
    } catch (error) {
      ctx.body = {
        status: 500,
        desc: '系统错误',
        data: null
      }
    }
  }
}
module.exports = BillController;



2、在服务层添加bill.js

1960b4c43cb343d6a29b1fb350ce0cb2.png

'use strict';
const Service = require('egg').Service;
class BillService extends Service {
  async add(params) {
    const { app } = this;
    try {
      // 往 bill 表中,插入一条账单数据
      const result = await app.mysql.insert('bill', params);
      return result;
    } catch (error) {
      console.log(error);
      return null;
    }
  }
}
module.exports = BillService;


3、添加路由

// 添加账单
router.post('/api/bill/add', verify_token, controller.bill.add);

21398efd2aaf4764adc62e5b68a4a119.png


测试新增账单接口

上面我们已经写好了新增的逻辑,接下来我们用 apifox 测试一下:


1、先在 apifox 新建接口

点击新建接口之后,填写好相关信息

a3b0725924fd4f60a40aa30cb36f81ee.png


2、添加参数测试

我们先登录拿到token


67ff7aa3c64947fa86147ed1c4f2c14f.png

然后填写需要的参数,记得把请求改成post,不然会报错

db223c930bf0470e9d20090d7c38ed55.png



3、检查数据库是否有新增

44fa95168f394ff2a63d30a9ae5952ae.png


发现有数据,测试成功,并且用户也对应上了。






目录
相关文章
|
1月前
基于jeecgboot的支持flowable的排它网关之后的会签功能(二)
基于jeecgboot的支持flowable的排它网关之后的会签功能(二)
18 1
|
1月前
|
前端开发
基于jeecgboot的支持flowable的排它网关之后的会签功能(一)
基于jeecgboot的支持flowable的排它网关之后的会签功能(一)
29 0
|
9月前
|
API
api一键自动合约跟单模式 | 程序化交易系统开发讲解【附样板源码实例分析】
“量化交易”有着两层含义:一是从狭义上来讲,是指量化交易的内容,将交易条件转变成为程序,自动下单;二是从广义上来讲,是指系统交易方法,就是一个整合的交易系统。
|
9月前
|
JSON API 网络架构
什么是API商品数据接口?该怎么使用?
API商品数据接口是一种应用程序接口,用于提供商品数据的服务。它允许开发者通过编写代码来访问和获取商品数据,以便于他们在自己的应用程序中使用。API商品数据接口可以使用各种不同的协议和标准来实现,例如RESTful API、SOAP、XML-RPC等,其中RESTful API是最常用的一种。 使用API商品数据接口可以方便地从其他系统获取商品数据,同时也可以将本系统的商品数据提供给其他系统使用。API商品数据接口在设计时需要考虑接口的安全性、稳定性、高效性和扩展性等方面,因此它需要具备一系列的特点和规范。
|
10月前
|
消息中间件 API 数据库
细谈商品详情API接口设计
随着互联网技术的发展,商品详情信息的展示和交互变得越来越重要。为了提供更好的用户体验,我们需要设计一套高效、稳定且易于扩展的商品详情API接口。本文将详细探讨商品详情API接口的设计,包括接口的通用性、安全性和扩展性等方面,并附有相应的代码实现。
|
10月前
|
JSON JavaScript 搜索推荐
商品详情接口设计:使用API调用获取淘宝商品数据的完整方案
在如今的电商时代,获取商品的详细信息是实现商业化应用的基础。本文将详细介绍如何通过API调用来获取淘宝商品数据,并提供一个完整的商品详情接口设计方案,包括代码示例。开发人员可以根据此方案快速实现商品详情功能,提升用户体验。
|
11月前
|
存储 监控 安全
转账通缩功能开发实例源码规则解析
转账通缩功能开发实例源码规则解析
|
12月前
|
API 开发工具 数据安全/隐私保护
作为用户我该如何调用API 接口获取商品数据
通过学习开放平台的API文档,并正确调用API接口,你可以获得所需的商品数据。记得遵守开放平台的规则和限制,保护好你的API密钥,并合法使用获取的商品数据
|
算法 NoSQL API
微信支付-业务流程图+时序图梳理微信支付链路+封装对接微信API工具类
微信支付-业务流程图+时序图梳理微信支付链路+封装对接微信API工具类
334 0
|
JSON 前端开发 Java
基于Springboot外卖系统14:菜品新增模块+多个数据表操作+文件上传下载复用
后台系统中可以管理菜品信息,通过新增功能来添加一个新的菜品,在添加菜品时需要选择当前菜品所属的菜品分类,并且需要上传菜品图片,在移动端会按照菜品分类来展示对应的菜品信息 。
219 0