当前位置: 首页 > news >正文

尚庭公寓-----day1 业务功能实现

房间支付方式管理相关代码

需要完成三个接口的实现:

  • 查询全部支付方式列表
  • 保存或更新支付方式
  • 根据ID删除支付方式

controller

package com.nie.lease.web.admin.controller.apartment;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.nie.lease.common.result.Result;
import com.nie.lease.model.entity.PaymentType;
import com.nie.lease.web.admin.service.PaymentTypeService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;@Tag(name = "支付方式管理")
@RequestMapping("/admin/payment")
@RestController
public class PaymentTypeController {@Autowiredprivate PaymentTypeService paymentTypeService;@Operation(summary = "查询全部支付方式列表")@GetMapping("list")public Result<List<PaymentType>> listPaymentType() {List<PaymentType> list = paymentTypeService.list();return Result.ok(list);}@Operation(summary = "保存或更新支付方式")@PostMapping("saveOrUpdate")public Result saveOrUpdatePaymentType(@RequestBody PaymentType paymentType) {paymentTypeService.saveOrUpdate(paymentType);return Result.ok();}@Operation(summary = "根据ID删除支付方式")@DeleteMapping("deleteById")public Result deletePaymentById(@RequestParam Long id) {paymentTypeService.removeById(id);return Result.ok();}}

service

package com.nie.lease.web.admin.service;import com.nie.lease.model.entity.PaymentType;
import com.baomidou.mybatisplus.extension.service.IService;/**
* @author liubo
* @description 针对表【payment_type(支付方式表)】的数据库操作Service
* @createDate 2023-07-24 15:48:00
*/
public interface PaymentTypeService extends IService<PaymentType> {}

房间租期管理相关代码

需要完成三个接口的实现

  • 查询全部租期列表
  • 保存或更新租期信息
  • 根据ID删除租期

controller

package com.nie.lease.web.admin.controller.apartment;import com.nie.lease.common.result.Result;
import com.nie.lease.model.entity.LeaseTerm;
import com.nie.lease.web.admin.service.LeaseTermService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;@Tag(name = "租期管理")
@RequestMapping("/admin/term")
@RestController
public class LeaseTermController {@Autowiredprivate LeaseTermService leaseTermService;@GetMapping("list")@Operation(summary = "查询全部租期列表")public Result<List<LeaseTerm>> listLeaseTerm() {List<LeaseTerm> list = leaseTermService.list();return Result.ok(list);}@PostMapping("saveOrUpdate")@Operation(summary = "保存或更新租期信息")public Result saveOrUpdate(@RequestBody LeaseTerm leaseTerm) {leaseTermService.saveOrUpdate(leaseTerm);return Result.ok();}@DeleteMapping("deleteById")@Operation(summary = "根据ID删除租期")public Result deleteLeaseTermById(@RequestParam Long id) {leaseTermService.removeById(id);return Result.ok();}
}

service

package com.nie.lease.web.admin.service;import com.nie.lease.model.entity.LeaseTerm;
import com.baomidou.mybatisplus.extension.service.IService;/**
* @author liubo
* @description 针对表【lease_term(租期)】的数据库操作Service
* @createDate 2023-07-24 15:48:00
*/
public interface LeaseTermService extends IService<LeaseTerm> {}

标签管理相关代码

需要完成三个接口的实现

  • (根据类型)查询标签列表
  • 新增或修改标签信息
  • 根据id删除标签信息

编写自定义Converter用于枚举类型装换

package com.nie.lease.web.admin.custom.converter;import com.nie.lease.model.enums.ItemType;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;@Component
public class StringToItemTypeConverter implements Converter<String, ItemType> {@Overridepublic ItemType convert(String code) {ItemType[] values = ItemType.values();for (ItemType itemType : values) {if (itemType.getCode().equals(Integer.valueOf(code))){return itemType;}}throw new IllegalArgumentException("code"+code+"非法");}}

注册我们写的Converter

package com.nie.lease.web.admin.custom.config;import com.nie.lease.web.admin.custom.converter.StringToItemTypeConverter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {@Autowiredprivate StringToItemTypeConverter stringToItemTypeConverter;@Overridepublic void addFormatters(FormatterRegistry registry) {registry.addConverter(this.stringToItemTypeConverter);}}

但是像这样写的话 我们需要写好多个这样的类 所以我们采用工厂设计模式

自定义ConverterFactory

package com.nie.lease.web.admin.custom.converter;import com.nie.lease.model.enums.BaseEnum;
import org.springframework.core.convert.converter.Converter;
import org.springframework.core.convert.converter.ConverterFactory;
import org.springframework.stereotype.Component;@Component
public class StringToBaseEnumConverterFactory implements ConverterFactory<String, BaseEnum> {@Overridepublic <T extends BaseEnum> Converter<String, T> getConverter(Class<T> targetType) {return new Converter<String, T>() {@Overridepublic T convert(String code) {T[] enumConstants = targetType.getEnumConstants();for (T enumConstant : enumConstants) {if (enumConstant.getCode().equals(Integer.parseInt(code))) {return enumConstant;}}throw new IllegalArgumentException("code"+code+"非法");}};}
}

注册ConverterFactory

package com.nie.lease.web.admin.custom.config;import com.nie.lease.web.admin.custom.converter.StringToBaseEnumConverterFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {@Autowiredprivate StringToBaseEnumConverterFactory stringToBaseEnumConverterFactory;@Overridepublic void addFormatters(FormatterRegistry registry) {registry.addConverterFactory(this.stringToBaseEnumConverterFactory);}}

controller

package com.nie.lease.web.admin.controller.apartment;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.nie.lease.common.result.Result;
import com.nie.lease.model.entity.LabelInfo;
import com.nie.lease.model.enums.ItemType;
import com.nie.lease.web.admin.service.LabelInfoService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;@Tag(name = "标签管理")
@RestController
@RequestMapping("/admin/label")
public class LabelController {@Autowiredprivate LabelInfoService labelInfoService;@Operation(summary = "(根据类型)查询标签列表")@GetMapping("list")public Result<List<LabelInfo>> labelList(@RequestParam(required = false) ItemType type) {LambdaQueryWrapper<LabelInfo> labelInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();labelInfoLambdaQueryWrapper.eq(type!=null,LabelInfo::getType,type);List<LabelInfo> list = labelInfoService.list(labelInfoLambdaQueryWrapper);return Result.ok(list);}@Operation(summary = "新增或修改标签信息")@PostMapping("saveOrUpdate")public Result saveOrUpdateLabel(@RequestBody LabelInfo labelInfo) {labelInfoService.saveOrUpdate(labelInfo);return Result.ok();}@Operation(summary = "根据id删除标签信息")@DeleteMapping("deleteById")public Result deleteLabelById(@RequestParam Long id) {labelInfoService.removeById(id);return Result.ok();}
}

service

package com.nie.lease.web.admin.service;import com.nie.lease.model.entity.LabelInfo;
import com.baomidou.mybatisplus.extension.service.IService;/**
* @author liubo
* @description 针对表【label_info(标签信息表)】的数据库操作Service
* @createDate 2023-07-24 15:48:00
*/
public interface LabelInfoService extends IService<LabelInfo> {}

配套信息管理相关代码

需要完成三个接口的实现

  • [根据类型]查询配套信息列表
  • 新增或修改配套信息
  • 根据id删除配套信息
    controller
package com.nie.lease.web.admin.controller.apartment;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.nie.lease.common.result.Result;
import com.nie.lease.model.entity.FacilityInfo;
import com.nie.lease.model.enums.ItemType;
import com.nie.lease.web.admin.service.FacilityInfoService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;@Tag(name = "配套管理")
@RestController
@RequestMapping("/admin/facility")
public class FacilityController {@Autowiredprivate FacilityInfoService facilityInfoService;@Operation(summary = "[根据类型]查询配套信息列表")@GetMapping("list")public Result<List<FacilityInfo>> listFacility(@RequestParam(required = false) ItemType type) {LambdaQueryWrapper<FacilityInfo> facilityInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();facilityInfoLambdaQueryWrapper.eq(type!=null,FacilityInfo::getType,type);List<FacilityInfo> list = facilityInfoService.list(facilityInfoLambdaQueryWrapper);return Result.ok(list);}@Operation(summary = "新增或修改配套信息")@PostMapping("saveOrUpdate")public Result saveOrUpdate(@RequestBody FacilityInfo facilityInfo) {facilityInfoService.saveOrUpdate(facilityInfo);return Result.ok();}@Operation(summary = "根据id删除配套信息")@DeleteMapping("deleteById")public Result removeFacilityById(@RequestParam Long id) {facilityInfoService.removeById(id);return Result.ok();}}

service

package com.nie.lease.web.admin.service;import com.nie.lease.model.entity.FacilityInfo;
import com.baomidou.mybatisplus.extension.service.IService;/**
* @author liubo
* @description 针对表【facility_info(配套信息表)】的数据库操作Service
* @createDate 2023-07-24 15:48:00
*/
public interface FacilityInfoService extends IService<FacilityInfo> {}

房间基本属性管理相关代码

需要完成五个接口的实现

  • 新增或更新属性名称
  • 新增或更新属性值
  • 查询全部属性名称和属性值列表
  • 根据id删除属性名称
  • 根据id删除属性值

controller

package com.nie.lease.web.admin.controller.apartment;import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.nie.lease.common.result.Result;
import com.nie.lease.model.entity.AttrKey;
import com.nie.lease.model.entity.AttrValue;
import com.nie.lease.web.admin.service.AttrKeyService;
import com.nie.lease.web.admin.service.AttrValueService;
import com.nie.lease.web.admin.vo.attr.AttrKeyVo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;@Tag(name = "房间属性管理")
@RestController
@RequestMapping("/admin/attr")
public class AttrController {@Autowiredprivate AttrKeyService attrKeyService;@Autowiredprivate AttrValueService attrValueService;@Operation(summary = "新增或更新属性名称")@PostMapping("key/saveOrUpdate")public Result saveOrUpdateAttrKey(@RequestBody AttrKey attrKey) {attrKeyService.saveOrUpdate(attrKey);return Result.ok();}@Operation(summary = "新增或更新属性值")@PostMapping("value/saveOrUpdate")public Result saveOrUpdateAttrValue(@RequestBody AttrValue attrValue) {attrValueService.saveOrUpdate(attrValue);return Result.ok();}@Operation(summary = "查询全部属性名称和属性值列表")@GetMapping("list")public Result<List<AttrKeyVo>> listAttrInfo() {List<AttrKeyVo> list=attrKeyService.listAttrInfo();return Result.ok(list);}@Operation(summary = "根据id删除属性名称")@DeleteMapping("key/deleteById")public Result removeAttrKeyById(@RequestParam Long attrKeyId) {attrKeyService.removeById(attrKeyId);LambdaUpdateWrapper<AttrValue> attrValueLambdaUpdateWrapper = new LambdaUpdateWrapper<>();attrValueLambdaUpdateWrapper.eq(AttrValue::getAttrKeyId, attrKeyId);attrValueService.remove(attrValueLambdaUpdateWrapper);return Result.ok();}@Operation(summary = "根据id删除属性值")@DeleteMapping("value/deleteById")public Result removeAttrValueById(@RequestParam Long id) {attrValueService.removeById(id);return Result.ok();}}

service

package com.nie.lease.web.admin.service;import com.nie.lease.model.entity.AttrKey;
import com.nie.lease.web.admin.vo.attr.AttrKeyVo;
import com.baomidou.mybatisplus.extension.service.IService;import java.util.List;/**
* @author liubo
* @description 针对表【attr_key(房间基本属性表)】的数据库操作Service
* @createDate 2023-07-24 15:48:00
*/
public interface AttrKeyService extends IService<AttrKey> {List<AttrKeyVo> listAttrInfo();
}
package com.nie.lease.web.admin.service;import com.nie.lease.model.entity.AttrValue;
import com.baomidou.mybatisplus.extension.service.IService;/**
* @author liubo
* @description 针对表【attr_value(房间基本属性值表)】的数据库操作Service
* @createDate 2023-07-24 15:48:00
*/
public interface AttrValueService extends IService<AttrValue> {}

service实现类

package com.nie.lease.web.admin.service.impl;import com.nie.lease.model.entity.AttrKey;
import com.nie.lease.web.admin.mapper.AttrKeyMapper;
import com.nie.lease.web.admin.service.AttrKeyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nie.lease.web.admin.vo.attr.AttrKeyVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;/**
* @author liubo
* @description 针对表【attr_key(房间基本属性表)】的数据库操作Service实现
* @createDate 2023-07-24 15:48:00
*/
@Service
public class AttrKeyServiceImpl extends ServiceImpl<AttrKeyMapper, AttrKey>implements AttrKeyService{@Autowiredprivate AttrKeyMapper attrKeyMapper;@Overridepublic List<AttrKeyVo> listAttrInfo() {return attrKeyMapper.listAttrInfo();}
}

mapper

package com.nie.lease.web.admin.mapper;import com.nie.lease.model.entity.AttrKey;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nie.lease.web.admin.vo.attr.AttrKeyVo;
import org.apache.ibatis.annotations.Mapper;import java.util.List;/**
* @author liubo
* @description 针对表【attr_key(房间基本属性表)】的数据库操作Mapper
* @createDate 2023-07-24 15:48:00
* @Entity com.atguigu.lease.model.AttrKey
*/
@Mapper
public interface AttrKeyMapper extends BaseMapper<AttrKey> {List<AttrKeyVo> listAttrInfo();
}

mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nie.lease.web.admin.mapper.AttrKeyMapper"><resultMap id="AttrKeyVoMap" type="com.nie.lease.web.admin.vo.attr.AttrKeyVo" ><id property="id" column="id"/><result property="name" column="name"/><collection property="attrValueList" ofType="com.nie.lease.model.entity.AttrValue"><id property="id" column="attr_value_id"/><result property="name" column="attr_value_name"/><result property="attrKeyId" column="attr_key_id"/></collection></resultMap><select id="listAttrInfo" resultMap="AttrKeyVoMap">select k.id,k.name,v.id   attr_value_id,v.name attr_value_name,v.attr_key_idfrom attr_key kleft join attr_value von k.id = v.attr_key_id and v.is_deleted = 0where k.is_deleted = 0</select>
</mapper>
http://www.dtcms.com/a/283242.html

相关文章:

  • 八、DMSP/OLS、NPP/VIIRS等夜间灯光数据能源碳排放空间化——碳排放空间分级、空间自相关
  • PyCharm高效入门指南
  • docker+小皮面板
  • TCP 三次握手与四次挥手笔记
  • 光伏气象数据驱动设计方案优化
  • Spider的用法
  • 搭建云途YTM32B1MD1芯片VSCODE+GCC + Nijia + Cmake+Jlink开发环境
  • Python设计模式深度解析:单例模式(Singleton Pattern)完全指南
  • 深度解析api-ms-win-crt-runtime-l1-1-0.dll:它是什么?为什么重要?如何修复?
  • Spring MVC中@PathVariable的用法详解
  • 【世纪龙】汽车发动机拆装检修仿真教学软件-数字技术重塑教学
  • 汽车数字化——65页大型汽车集团企业IT信息化(管理架构、应用架构、技术架构)战略规划【附全文阅读】
  • 网络安全初级(Python实现sql自动化布尔盲注)
  • Android Git操作
  • 小程序 状态管理 mobx-miniprogram 和 miniprogram-compute
  • 将Android Studio创建的一个apk工程放到Android15源码中构建
  • Prompting Engineer 十大核心设计原则
  • 比特币简介
  • Swift6.0基础知识 -- 可选2
  • 正则表达式梳理
  • Linux驱动13 --- 多节点设备树
  • MySQL主键策略解析:自增ID与UUID的优劣及选择建议
  • 7.17 滑动窗口 | assign
  • Docker容器访问挂载文件权限问题
  • MPPT电路设计
  • vue中后端返回数据流,前端实现导出下载
  • 等价关系与不变量
  • Web3:Solidity入门到精通
  • cdr序列化与反序列化
  • SenseGlove力反馈手套:医疗、生产制造、军事模拟与远程机器人控制新革命