From 9f9745f78899707015a5b914794e684dbf3ddac9 Mon Sep 17 00:00:00 2001 From: zhangli <123879394@qq.com> Date: Sat, 12 Jul 2025 21:23:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=A0=B9=E6=8D=AE=E9=97=A8?= =?UTF-8?q?=E5=BA=97=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=E8=BD=A6=E5=9E=8B?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- src/main/java/com/sczx/car/Application.java | 2 +- .../com/sczx/car/config/SwaggerConfig.java | 6 +- .../car/controller/CarModelController.java | 37 ++++++++ .../com/sczx/car/dto/CarModelSimpleDTO.java | 34 ++++++++ .../sczx/car/dto/req/StoreCarModelReq.java | 22 +++++ .../com/sczx/car/mapper/CarModelMapper.java | 23 +++++ src/main/java/com/sczx/car/po/CarModelPO.java | 84 +++++++++++++++++++ .../com/sczx/car/repository/CarModelRepo.java | 29 +++++++ .../car/repository/impl/CarModelRepoImpl.java | 29 +++++++ .../com/sczx/car/service/CarModelService.java | 15 ++++ .../car/service/impl/CarModelServiceImpl.java | 22 +++++ src/main/resources/application.yml | 5 -- src/main/resources/doc/biz_table.sql | 55 ++++++++++++ src/main/resources/mapper/CarModelMapper.xml | 11 +++ src/test/java/com/sczx/car/CodeGenerator.java | 2 +- 16 files changed, 367 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/sczx/car/controller/CarModelController.java create mode 100644 src/main/java/com/sczx/car/dto/CarModelSimpleDTO.java create mode 100644 src/main/java/com/sczx/car/dto/req/StoreCarModelReq.java create mode 100644 src/main/java/com/sczx/car/mapper/CarModelMapper.java create mode 100644 src/main/java/com/sczx/car/po/CarModelPO.java create mode 100644 src/main/java/com/sczx/car/repository/CarModelRepo.java create mode 100644 src/main/java/com/sczx/car/repository/impl/CarModelRepoImpl.java create mode 100644 src/main/java/com/sczx/car/service/CarModelService.java create mode 100644 src/main/java/com/sczx/car/service/impl/CarModelServiceImpl.java create mode 100644 src/main/resources/doc/biz_table.sql create mode 100644 src/main/resources/mapper/CarModelMapper.xml diff --git a/README.md b/README.md index 657408f..38e273d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ -# sczx_store +# sczx_car 闪充智行-车辆、车型、套餐管理服务 \ No newline at end of file diff --git a/src/main/java/com/sczx/car/Application.java b/src/main/java/com/sczx/car/Application.java index d03e8e0..427ae98 100644 --- a/src/main/java/com/sczx/car/Application.java +++ b/src/main/java/com/sczx/car/Application.java @@ -22,7 +22,7 @@ import java.io.IOException; @EnableFeignClients(basePackages = SystemConstants.FEIGN_CLIENT_BASE_PACKAGE ) @EnableTransactionManagement @EnableHystrix -@MapperScan("com.sczx.store.mapper") // 扫描 Mapper 接口 +@MapperScan("com.sczx.car.mapper") // 扫描 Mapper 接口 public class Application { public static void main(String[] args) throws IOException { diff --git a/src/main/java/com/sczx/car/config/SwaggerConfig.java b/src/main/java/com/sczx/car/config/SwaggerConfig.java index 2db7b5c..bbb1b40 100644 --- a/src/main/java/com/sczx/car/config/SwaggerConfig.java +++ b/src/main/java/com/sczx/car/config/SwaggerConfig.java @@ -23,7 +23,7 @@ public class SwaggerConfig { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - .apis(RequestHandlerSelectors.basePackage("com.sczx.store.controller")) // 修改为你的 controller 包路径 + .apis(RequestHandlerSelectors.basePackage("com.sczx.car.controller")) // 修改为你的 controller 包路径 .paths(PathSelectors.any()) .build() .globalOperationParameters(Arrays.asList( @@ -39,8 +39,8 @@ public class SwaggerConfig { private ApiInfo apiInfo() { return new ApiInfoBuilder() - .title("门店服务接口文档") - .description("sczx_store门店服务接口文档文档") + .title("车辆车型套餐服务接口文档") + .description("sczx_car车辆车型套餐服务接口文档") .version("1.0") .build(); } diff --git a/src/main/java/com/sczx/car/controller/CarModelController.java b/src/main/java/com/sczx/car/controller/CarModelController.java new file mode 100644 index 0000000..39e9a50 --- /dev/null +++ b/src/main/java/com/sczx/car/controller/CarModelController.java @@ -0,0 +1,37 @@ +package com.sczx.car.controller; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.sczx.car.common.Result; +import com.sczx.car.dto.CarModelSimpleDTO; +import com.sczx.car.dto.req.StoreCarModelReq; +import com.sczx.car.service.CarModelService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + *

+ * 车型表 前端控制器 + *

+ * + * @author zhangli + * @since 2025-07-12 19:55:31 + */ +@Api(value = "车型接口", tags = "车型相关查询") +@RestController +@RequestMapping("/carModel") +public class CarModelController { + + @Autowired + private CarModelService carModelService; + + @ApiOperation(value = "分页查询门店车型列表") + @PostMapping("/pageStoreCarModel") + Result> pageStoreCarModel(@RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize, + @RequestBody StoreCarModelReq storeCarModelReq){ + return Result.ok(carModelService.pageCarModelSimpleDTO(storeCarModelReq, pageNo, pageSize)); + } +} diff --git a/src/main/java/com/sczx/car/dto/CarModelSimpleDTO.java b/src/main/java/com/sczx/car/dto/CarModelSimpleDTO.java new file mode 100644 index 0000000..0b7a499 --- /dev/null +++ b/src/main/java/com/sczx/car/dto/CarModelSimpleDTO.java @@ -0,0 +1,34 @@ +package com.sczx.car.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "车型简单对象") +public class CarModelSimpleDTO { + + @ApiModelProperty("车型ID") + private Long carModelId; + + @ApiModelProperty("门店id") + private Integer storeId; + + @ApiModelProperty("门店编号") + private String storeNumber; + + @ApiModelProperty("车型名称") + private String modelName; + + @ApiModelProperty("品牌名称") + private String brandName; + + @ApiModelProperty("租赁类型(时租/日租/按天数/以租代售),用逗号分隔") + private String batteryTypes; + + @ApiModelProperty("是否支持免押(0不支持 1支持)") + private String depositFree; + + @ApiModelProperty("是否支持代扣(0不支持 1支持)") + private String autoDeduct; +} diff --git a/src/main/java/com/sczx/car/dto/req/StoreCarModelReq.java b/src/main/java/com/sczx/car/dto/req/StoreCarModelReq.java new file mode 100644 index 0000000..996ab67 --- /dev/null +++ b/src/main/java/com/sczx/car/dto/req/StoreCarModelReq.java @@ -0,0 +1,22 @@ +package com.sczx.car.dto.req; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "门店车型请求") +public class StoreCarModelReq { + + @ApiModelProperty("门店id") + private Long storeId; + + @ApiModelProperty("门店编号") + private String storeNumber; + + @ApiModelProperty("是否支持免押(0不支持 1支持)") + private String depositFree = "1"; + + @ApiModelProperty("是否支持代扣(0不支持 1支持)") + private String autoDeduct = "1"; +} diff --git a/src/main/java/com/sczx/car/mapper/CarModelMapper.java b/src/main/java/com/sczx/car/mapper/CarModelMapper.java new file mode 100644 index 0000000..efe628b --- /dev/null +++ b/src/main/java/com/sczx/car/mapper/CarModelMapper.java @@ -0,0 +1,23 @@ +package com.sczx.car.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.sczx.car.dto.CarModelSimpleDTO; +import com.sczx.car.dto.req.StoreCarModelReq; +import com.sczx.car.po.CarModelPO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +/** + *

+ * 车型表 Mapper 接口 + *

+ * + * @author zhangli + * @since 2025-07-12 19:55:31 + */ +public interface CarModelMapper extends BaseMapper { + + IPage pageCarModelSimpleDTO(Page page, @Param("storeCarModelReq") StoreCarModelReq storeCarModelReq); + +} diff --git a/src/main/java/com/sczx/car/po/CarModelPO.java b/src/main/java/com/sczx/car/po/CarModelPO.java new file mode 100644 index 0000000..b7cf737 --- /dev/null +++ b/src/main/java/com/sczx/car/po/CarModelPO.java @@ -0,0 +1,84 @@ +package com.sczx.car.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + *

+ * 车型表 + *

+ * + * @author zhangli + * @since 2025-07-12 19:55:31 + */ +@Getter +@Setter +@TableName("zc_car_model") +@ApiModel(value = "CarModelPO对象", description = "车型表") +public class CarModelPO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("车型ID") + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("车型名称") + private String modelName; + + @ApiModelProperty("品牌ID") + private Long brandId; + + @ApiModelProperty("品牌名称") + private String brandName; + + @ApiModelProperty("电池类型") + private String batteryType; + + @ApiModelProperty("最高时速(km/h)") + private Integer maxSpeed; + + @ApiModelProperty("整车重量(kg)") + private BigDecimal weight; + + @ApiModelProperty("状态(0正常 1停用)") + private String status; + + @ApiModelProperty("删除标志(0存在 2删除)") + private String delFlag; + + @ApiModelProperty("创建者") + private String createBy; + + @ApiModelProperty("创建时间") + private LocalDateTime createTime; + + @ApiModelProperty("更新者") + private String updateBy; + + @ApiModelProperty("更新时间") + private LocalDateTime updateTime; + + @ApiModelProperty("备注") + private String remark; + + @ApiModelProperty("扩展字段1") + private String extend1; + + @ApiModelProperty("扩展字段2") + private String extend2; + + @ApiModelProperty("扩展字段3") + private String extend3; + + +} diff --git a/src/main/java/com/sczx/car/repository/CarModelRepo.java b/src/main/java/com/sczx/car/repository/CarModelRepo.java new file mode 100644 index 0000000..00b2957 --- /dev/null +++ b/src/main/java/com/sczx/car/repository/CarModelRepo.java @@ -0,0 +1,29 @@ +package com.sczx.car.repository; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.sczx.car.dto.CarModelSimpleDTO; +import com.sczx.car.dto.req.StoreCarModelReq; +import com.sczx.car.po.CarModelPO; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 车型表 服务类 + *

+ * + * @author zhangli + * @since 2025-07-12 19:55:31 + */ +public interface CarModelRepo extends IService { + + /** + * 分页查询门店车型 + * + * @param storeCarModelReq + * @param pageNo + * @param pageSize + * @return + */ + IPage pageCarModelSimpleDTO(StoreCarModelReq storeCarModelReq, Integer pageNo, Integer pageSize); + +} diff --git a/src/main/java/com/sczx/car/repository/impl/CarModelRepoImpl.java b/src/main/java/com/sczx/car/repository/impl/CarModelRepoImpl.java new file mode 100644 index 0000000..3607a9b --- /dev/null +++ b/src/main/java/com/sczx/car/repository/impl/CarModelRepoImpl.java @@ -0,0 +1,29 @@ +package com.sczx.car.repository.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.sczx.car.dto.CarModelSimpleDTO; +import com.sczx.car.dto.req.StoreCarModelReq; +import com.sczx.car.po.CarModelPO; +import com.sczx.car.mapper.CarModelMapper; +import com.sczx.car.repository.CarModelRepo; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 车型表 服务实现类 + *

+ * + * @author zhangli + * @since 2025-07-12 19:55:31 + */ +@Service +public class CarModelRepoImpl extends ServiceImpl implements CarModelRepo { + + @Override + public IPage pageCarModelSimpleDTO(StoreCarModelReq storeCarModelReq, Integer pageNo, Integer pageSize) { + Page page = new Page<>(pageNo, pageSize); + return this.getBaseMapper().pageCarModelSimpleDTO(page, storeCarModelReq); + } +} diff --git a/src/main/java/com/sczx/car/service/CarModelService.java b/src/main/java/com/sczx/car/service/CarModelService.java new file mode 100644 index 0000000..18bda8a --- /dev/null +++ b/src/main/java/com/sczx/car/service/CarModelService.java @@ -0,0 +1,15 @@ +package com.sczx.car.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.sczx.car.dto.CarModelSimpleDTO; +import com.sczx.car.dto.req.StoreCarModelReq; + +public interface CarModelService { + + /** + * 分页查询门店车型 + * @param storeCarModelReq + * @return + */ + IPage pageCarModelSimpleDTO(StoreCarModelReq storeCarModelReq, Integer pageNo, Integer pageSize); +} diff --git a/src/main/java/com/sczx/car/service/impl/CarModelServiceImpl.java b/src/main/java/com/sczx/car/service/impl/CarModelServiceImpl.java new file mode 100644 index 0000000..30399c5 --- /dev/null +++ b/src/main/java/com/sczx/car/service/impl/CarModelServiceImpl.java @@ -0,0 +1,22 @@ +package com.sczx.car.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.sczx.car.dto.CarModelSimpleDTO; +import com.sczx.car.dto.req.StoreCarModelReq; +import com.sczx.car.repository.CarModelRepo; +import com.sczx.car.service.CarModelService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +public class CarModelServiceImpl implements CarModelService { + + @Autowired + private CarModelRepo carModelRepo; + @Override + public IPage pageCarModelSimpleDTO(StoreCarModelReq storeCarModelReq, Integer pageNo, Integer pageSize) { + return carModelRepo.pageCarModelSimpleDTO(storeCarModelReq, pageNo, pageSize); + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index d5c57f1..0fe082f 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -68,11 +68,6 @@ hystrix: thread: timeoutInMilliseconds: 10000 # 默认熔断超时时间 -#springdoc: -# swagger-ui: -# url: /v3/api-docs -# path: /doc.html -# packages-to-scan: com.sczx.store.controller # 替换为你的 controller 包路径 mybatis-plus: mapper-locations: classpath*:mapper/**/*.xml diff --git a/src/main/resources/doc/biz_table.sql b/src/main/resources/doc/biz_table.sql new file mode 100644 index 0000000..6644b77 --- /dev/null +++ b/src/main/resources/doc/biz_table.sql @@ -0,0 +1,55 @@ + +/** 车型表 */ +CREATE TABLE `zc_car_model` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '车型ID', + `model_name` varchar(100) NOT NULL COMMENT '车型名称', + `brand_id` bigint DEFAULT NULL COMMENT '品牌ID', + `brand_name` varchar(100) NOT NULL COMMENT '品牌名称', + `battery_type` varchar(50) DEFAULT NULL COMMENT '电池类型', + `max_speed` int DEFAULT NULL COMMENT '最高时速(km/h)', + `weight` decimal(10,2) DEFAULT NULL COMMENT '整车重量(kg)', + `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', + `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 2删除)', + `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `extend1` varchar(200) DEFAULT NULL COMMENT '扩展字段1', + `extend2` varchar(200) DEFAULT NULL COMMENT '扩展字段2', + `extend3` varchar(200) DEFAULT NULL COMMENT '扩展字段3', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='车型表'; + +/** 租车计费规则表 */ +CREATE TABLE `zc_rent_car_rule` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '规则ID', + `rule_name` varchar(20) NOT NULL COMMENT '套餐名称', + `rule_code` varchar(50) DEFAULT NULL COMMENT '套餐编码', + `rental_type` varchar(20) NOT NULL COMMENT '租赁类型(时租/日租/按天数/以租代售)', + `rental_days` int DEFAULT NULL COMMENT '租赁天数(当类型为"按天数"时使用)', + `rental_price` decimal(10,2) NOT NULL COMMENT '租车价格(元)', + `deposit_price` decimal(10,2) NOT NULL COMMENT '押金价格(元)', + `overdue_fee` decimal(10,2) NOT NULL COMMENT '逾期金额(元)', + `overdue_type` varchar(10) DEFAULT '按日计费' COMMENT '逾期计费类型(按日计费/按月计费)', + `deposit_free` char(1) DEFAULT '0' COMMENT '是否支持免押(0不支持 1支持)', + `auto_deduct` char(1) DEFAULT '0' COMMENT '是否支持代扣(0不支持 1支持)', + `operating_company_id` int DEFAULT NULL COMMENT '所属运营商', + `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', + `is_default` char(1) DEFAULT '0' COMMENT '是否默认套餐(0否 1是)', + `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)', + `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `extend1` varchar(200) DEFAULT NULL COMMENT '扩展字段1', + `extend2` varchar(200) DEFAULT NULL COMMENT '扩展字段2', + `extend3` varchar(200) DEFAULT NULL COMMENT '扩展字段3', + `extend4` varchar(200) DEFAULT NULL COMMENT '扩展字段4', + `extend5` varchar(200) DEFAULT NULL COMMENT '扩展字段5', + PRIMARY KEY (`id`), + UNIQUE KEY `idx_rule_code` (`rule_code`), + KEY `idx_rental_type` (`rental_type`), + KEY `idx_status` (`status`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='租车计费规则表'; \ No newline at end of file diff --git a/src/main/resources/mapper/CarModelMapper.xml b/src/main/resources/mapper/CarModelMapper.xml new file mode 100644 index 0000000..9d4bb08 --- /dev/null +++ b/src/main/resources/mapper/CarModelMapper.xml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/src/test/java/com/sczx/car/CodeGenerator.java b/src/test/java/com/sczx/car/CodeGenerator.java index cab6804..08eedd6 100644 --- a/src/test/java/com/sczx/car/CodeGenerator.java +++ b/src/test/java/com/sczx/car/CodeGenerator.java @@ -10,7 +10,7 @@ import java.util.Collections; public class CodeGenerator { - private static final String parentPackage = "com.sczx.store"; + private static final String parentPackage = "com.sczx.car"; private static final String jdbcUrl = "jdbc:mysql://115.190.8.52:3306/sczx?useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&useSSL=false&serverTimezone=Asia/Shanghai"; private static final String username = "sczx_user"; private static final String password = "Sczx123@";