当前位置: 首页> 文旅> 文化 > 【SpringBoot + Vue 尚庭公寓实战】公寓杂费接口实现(八)

【SpringBoot + Vue 尚庭公寓实战】公寓杂费接口实现(八)

时间:2025/7/12 1:49:42来源:https://blog.csdn.net/weixin_53961667/article/details/139669494 浏览次数:0次

【SpringBoot + Vue 尚庭公寓实战】公寓杂费接口实现(八)


文章目录

      • 【SpringBoot + Vue 尚庭公寓实战】公寓杂费接口实现(八)
        • 1、公寓杂费业务介绍
        • 2、公寓杂费逻辑模型介绍
        • 3、接口实现
          • 3.1、保存或更新杂费值
          • 3.2、保存或更新杂费名称
          • 3.3、查询全部杂费名称和杂费值列表
          • 3.4、 根据ID删除杂费名称
          • 3.5、 根据ID删除杂费值

1、公寓杂费业务介绍

公寓杂费共有五个接口,分别是

  1. 保存或更新杂费名称
  2. 保存或更新杂费值
  3. 查询全部杂费名称和杂费值列表
  4. 根据ID删除杂费名称
  5. 根据ID删除杂费值
2、公寓杂费逻辑模型介绍
  • 公寓-杂费值关系 表将公寓和杂费值关联起来,表示某个公寓需要支付的具体杂费。
  • 杂费值 表包含了具体的杂费项目及其单位,并通过 所对应杂费名称ID 关联到 杂费名称 表。
  • 杂费名称 表列出了所有可能的杂费类型,并通过 杂费ID杂费值 关联。

image-20240613202146892

3、接口实现

首先在FeeController中注入FeeKeyServiceFeeValueService,如下:

@Tag(name = "房间杂费管理")
@RestController
@RequestMapping("/admin/fee")
public class FeeController {@Autowiredprivate FeeKeyService feeKeyService;@Autowiredprivate FeeValueService feeValueService;
}
3.1、保存或更新杂费值

接口查看

image-20240613204324647

以下是该接口的详细信息:

接口信息:

  • 请求地址: /admin/feeValue/saveOrUpdate
  • 请求类型: POST
  • 请求内容类型: application/json

请求示例:

{"id": 0,"name": "string","unit": "string","feeKeyId": 0
}

请求参数:

参数实体参数名称传输类型是否必填数据类型schema
feeValuebodytrueFeeValueFeeValue
idfalseinteger(int64)
namefalsestring
unitfalsestring
feeKeyIdfalseinteger(int64)

响应状态:

状态码说明
200OK

响应参数:

参数实体参数名称数据类型备注
codeinteger(int32)
messagestring
dataobject

响应示例:

{"code": 0,"message": "string","data": {}
}
  • 请求地址:此接口的请求地址是 /admin/feeValue/saveOrUpdate,用于保存或更新杂费值。
  • 请求类型POST 表示这是一个 POST 请求。
  • 请求内容类型application/json 表示请求数据需要以 JSON 格式发送。
  • 请求参数
    • feeValue:包含杂费值的详细信息,其中包括 idnameunitfeeKeyId
    • id:杂费值的唯一标识,整数类型。
    • name:杂费值的名称,字符串类型。
    • unit:杂费值的单位,字符串类型。
    • feeKeyId:对应的杂费名称的 ID,整数类型。
  • 响应状态:200 表示请求成功。
  • 响应参数
    • code:返回码,整数类型。
    • message:返回信息,字符串类型。
    • data:返回数据,对象类型。

通过这个接口,可以向服务器发送包含杂费值信息的 JSON 数据,以保存或更新杂费值,并接收服务器的响应。

代码实现

// 使用 @Tag 注解为控制器打标签,方便在 API 文档中分组显示
@Tag(name = "房间杂费管理")
@RestController
@RequestMapping("/admin/fee")
public class FeeController {// 自动注入 FeeKeyService 实例@Autowiredprivate FeeKeyService feeKeyService;// 自动注入 FeeValueService 实例@Autowiredprivate FeeValueService feeValueService;// 使用 @Operation 注解为方法添加描述信息,方便生成 API 文档@Operation(summary = "保存或更新杂费值")// 映射 POST 请求到 /admin/fee/value/saveOrUpdate@PostMapping("value/saveOrUpdate")public Result saveOrUpdateFeeValue(@RequestBody FeeValue feeValue) {// 调用 feeValueService 的 saveOrUpdate 方法保存或更新杂费值feeValueService.saveOrUpdate(feeValue);// 返回操作成功的结果return Result.ok();}}
3.2、保存或更新杂费名称

接口查看

image-20240613205215545

接口信息:

  • 请求地址: /admin/feeKey/saveOrUpdate
  • 请求类型: POST
  • 请求内容类型: application/json

请求示例:

{"id": 0,"name": "string"
}

请求参数:

参数实体参数名称传输类型是否必填数据类型schema
feeKeybodytrueFeeKeyFeeKey
idfalseinteger(int64)
namefalsestring

响应状态:

状态码说明
200OK

响应参数:

参数名称数据类型描述
codeinteger(int32)返回码
messagestring返回信息
dataobject返回数据

响应示例:

{"code": 0,"message": "string","data": {}
}

解释:

  • 请求地址:此接口的请求地址是 /admin/feeKey/saveOrUpdate,用于保存或更新杂费名称。
  • 请求类型POST 表示这是一个 POST 请求。
  • 请求内容类型application/json 表示请求数据需要以 JSON 格式发送。
  • 请求参数
    • feeKey:包含杂费名称的详细信息,其中包括 idname
    • id:杂费名称的唯一标识,整数类型。
    • name:杂费名称,字符串类型。
  • 响应状态:200 表示请求成功。
  • 响应参数
    • code:返回码,整数类型。
    • message:返回信息,字符串类型。
    • data:返回数据,对象类型。

代码实现

// 使用 @Operation 注解为方法添加描述信息,方便生成 API 文档
@Operation(summary = "保存或更新杂费名称")
// 映射 POST 请求到 /admin/feeKey/saveOrUpdate
@PostMapping("key/saveOrUpdate")
public Result saveOrUpdateFeeKey(@RequestBody FeeKey feeKey) {// 调用 feeKeyService 的 saveOrUpdate 方法保存或更新杂费名称feeKeyService.saveOrUpdate(feeKey);// 返回操作成功的结果return Result.ok();
}
3.3、查询全部杂费名称和杂费值列表

查看接口

image-20240613210154730

接口信息:

  • 请求地址: /admin/fee/list
  • 请求类型: GET
  • 请求内容类型: application/x-www-form-urlencoded

请求参数:

  • 此接口不需要请求参数。

响应状态:

状态码说明
200OK

响应参数:

参数名称数据类型描述
codeinteger(int32)返回码
messagestring返回信息
dataarray返回数据,包含 FeeKeyVo 对象

FeeKeyVo 对象:

参数名称数据类型描述
idinteger(int32)主键
namestring杂费名称
feeValueListarray杂费值集合

FeeValue 对象:

参数名称数据类型描述
idinteger(int64)主键
namestring杂费值名称
unitstring计量单位
feeKeyIdinteger对应的杂费名称的 ID

响应示例:

{"code": 0,"message": "string","data": [{"id": 0,"name": "string","feeValueList": [{"id": 0,"name": "string","unit": "string","feeKeyId": 0}]}]
}
  • 请求地址:此接口的请求地址是 /admin/fee/list,用于获取所有杂费名称及其对应的杂费值。
  • 请求类型GET 表示这是一个 GET 请求。
  • 请求内容类型application/x-www-form-urlencoded 表示请求数据需要以 URL 编码格式发送。
  • 请求参数:此接口不需要请求参数。
  • 响应状态:200 表示请求成功。
  • 响应参数
    • code:返回码,整数类型。
    • message:返回信息,字符串类型。
    • data:返回数据,包含 FeeKeyVo 对象的数组。
    • FeeKeyVo 对象:包含 idnamefeeValueList
    • FeeValue 对象:包含 idnameunitfeeKeyId

代码实现

  • 查看响应的数据结构

    查看web-admin模块下创的com.atguigu.lease.web.admin.vo.fee.FeeKeyVo,内容如下

    @Data
    public class FeeKeyVo extends FeeKey {@Schema(description = "杂费value列表")private List<FeeValue> feeValueList;
    }
    
  • 编写Controller层逻辑

    FeeController中增加如下内容

    @Operation(summary = "查询全部杂费名称和杂费值列表")
    @GetMapping("list")
    public Result<List<FeeKeyVo>> feeInfoList() {List<FeeKeyVo> list = feeKeyService.listFeeInfo();return Result.ok(list);
    }
    
  • 编写Service层逻辑

    • FeeKeyService中增加如下内容

      List<FeeKeyVo> listFeeInfo();
      
    • FeeKeyServiceImpl中增加如下内容

      @Autowired
      private FeeKeyMapper mapper;@Override
      public List<FeeKeyVo> listFeeInfo() {return mapper.listFeeInfo();
      }
      
  • 编写Mapper层逻辑

    • FeeKeyMapper中增加如下内容

      List<FeeKeyVo> listFeeInfo();
      
    • FeeKeyMapper.xml中增加如下内容

      <resultMap id="FeeInfoList" type="com.atguigu.lease.web.admin.vo.fee.FeeKeyVo"><id property="id" column="id"/><result property="name" column="key_name"/><collection property="feeValueList" ofType="com.atguigu.lease.model.entity.FeeValue"><id column="value_id" property="id"/><result column="value_name" property="name"/><result column="value_unit" property="unit"/><result column="key_id" property="feeKeyId"/></collection>
      </resultMap><select id="listFeeInfo" resultMap="FeeInfoList">select k.id,k.name       key_name,v.id         value_id,v.name       value_name,v.unit       value_unit,v.fee_key_id key_idfrom fee_key kleft join fee_value v on k.id = v.fee_key_id and v.is_deleted = 0where k.is_deleted = 0
      </select>
      
3.4、 根据ID删除杂费名称

查看接口

image-20240613210857331

接口信息:

  • 请求地址: /admin/fee/key/deleteById
  • 请求类型: DELETE
  • 请求内容类型: application/x-www-form-urlencoded

请求参数:

参数名称传输类型是否必填数据类型schema
feeKeyIdquerytrueinteger(int64)

响应状态:

状态码说明
200OK

响应参数:

参数名称数据类型描述
codeinteger(int32)返回码
messagestring返回信息
dataobject返回数据

响应示例:

{"code": 0,"message": "","data": {}
}

解释:

  • 请求地址:此接口的请求地址是 /admin/fee/key/deleteById,用于根据 ID 删除杂费名称。
  • 请求类型DELETE 表示这是一个 DELETE 请求。
  • 请求内容类型application/x-www-form-urlencoded 表示请求数据需要以 URL 编码格式发送。
  • 请求参数
    • feeKeyId:杂费名称的唯一标识,整数类型,作为查询参数传递。
  • 响应状态:200 表示请求成功。
  • 响应参数
    • code:返回码,整数类型。
    • message:返回信息,字符串类型。
    • data:返回数据,对象类型。

代码实现

@Operation(summary = "根据id删除杂费名称")
@DeleteMapping("key/deleteById")
@Transactional  //开始事物
public Result deleteFeeKeyById(@RequestParam Long feeKeyId) {feeKeyService.removeById(feeKeyId);LambdaQueryWrapper<FeeValue> lambdaQueryWrapper = new LambdaQueryWrapper<>();lambdaQueryWrapper.eq(FeeValue::getFeeKeyId,feeKeyId);feeValueService.remove(lambdaQueryWrapper);return Result.ok();
}
3.5、 根据ID删除杂费值

查看接口

Snipaste_2024-06-13_21-16-17

接口信息:

  • 请求地址: /admin/fee/value/deleteById
  • 请求类型: DELETE
  • 请求内容类型: application/x-www-form-urlencoded

请求参数:

参数名称传输类型是否必填数据类型schema
idquerytrueinteger(int64)

响应状态:

状态码说明
200OK

响应参数:

参数名称数据类型描述
codeinteger(int32)返回码
messagestring返回信息
dataobject返回数据

响应示例:

{"code": 0,"message": "","data": {}
}

解释:

  • 请求地址:此接口的请求地址是 /admin/fee/value/deleteById,用于根据 ID 删除杂费值。
  • 请求类型DELETE 表示这是一个 DELETE 请求。
  • 请求内容类型application/x-www-form-urlencoded 表示请求数据需要以 URL 编码格式发送。
  • 请求参数
    • id:杂费值的唯一标识,整数类型,作为查询参数传递。
  • 响应状态:200 表示请求成功。
  • 响应参数
    • code:返回码,整数类型。
    • message:返回信息,字符串类型。
    • data:返回数据,对象类型。

代码实现

@Operation(summary = "根据id删除杂费值")
@DeleteMapping("value/deleteById")
public Result deleteFeeValueById(@RequestParam Long id) {feeValueService.removeById(id);return Result.ok();
}
关键字:【SpringBoot + Vue 尚庭公寓实战】公寓杂费接口实现(八)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: