新增根据门店分页查询车型列表

This commit is contained in:
2025-07-12 21:23:57 +08:00
parent d8b738ff93
commit 9f9745f788
16 changed files with 367 additions and 11 deletions

View File

@ -1,3 +1,3 @@
# sczx_store # sczx_car
闪充智行-车辆、车型、套餐管理服务 闪充智行-车辆、车型、套餐管理服务

View File

@ -22,7 +22,7 @@ import java.io.IOException;
@EnableFeignClients(basePackages = SystemConstants.FEIGN_CLIENT_BASE_PACKAGE ) @EnableFeignClients(basePackages = SystemConstants.FEIGN_CLIENT_BASE_PACKAGE )
@EnableTransactionManagement @EnableTransactionManagement
@EnableHystrix @EnableHystrix
@MapperScan("com.sczx.store.mapper") // 扫描 Mapper 接口 @MapperScan("com.sczx.car.mapper") // 扫描 Mapper 接口
public class Application { public class Application {
public static void main(String[] args) throws IOException { public static void main(String[] args) throws IOException {

View File

@ -23,7 +23,7 @@ public class SwaggerConfig {
return new Docket(DocumentationType.SWAGGER_2) return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()) .apiInfo(apiInfo())
.select() .select()
.apis(RequestHandlerSelectors.basePackage("com.sczx.store.controller")) // 修改为你的 controller 包路径 .apis(RequestHandlerSelectors.basePackage("com.sczx.car.controller")) // 修改为你的 controller 包路径
.paths(PathSelectors.any()) .paths(PathSelectors.any())
.build() .build()
.globalOperationParameters(Arrays.asList( .globalOperationParameters(Arrays.asList(
@ -39,8 +39,8 @@ public class SwaggerConfig {
private ApiInfo apiInfo() { private ApiInfo apiInfo() {
return new ApiInfoBuilder() return new ApiInfoBuilder()
.title("门店服务接口文档") .title("车辆车型套餐服务接口文档")
.description("sczx_store门店服务接口文档文档") .description("sczx_car车辆车型套餐服务接口文档")
.version("1.0") .version("1.0")
.build(); .build();
} }

View File

@ -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.*;
/**
* <p>
* 车型表 前端控制器
* </p>
*
* @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<IPage<CarModelSimpleDTO>> 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));
}
}

View File

@ -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;
}

View File

@ -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";
}

View File

@ -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;
/**
* <p>
* 车型表 Mapper 接口
* </p>
*
* @author zhangli
* @since 2025-07-12 19:55:31
*/
public interface CarModelMapper extends BaseMapper<CarModelPO> {
IPage<CarModelSimpleDTO> pageCarModelSimpleDTO(Page<CarModelSimpleDTO> page, @Param("storeCarModelReq") StoreCarModelReq storeCarModelReq);
}

View File

@ -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;
/**
* <p>
* 车型表
* </p>
*
* @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;
}

View File

@ -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;
/**
* <p>
* 车型表 服务类
* </p>
*
* @author zhangli
* @since 2025-07-12 19:55:31
*/
public interface CarModelRepo extends IService<CarModelPO> {
/**
* 分页查询门店车型
*
* @param storeCarModelReq
* @param pageNo
* @param pageSize
* @return
*/
IPage<CarModelSimpleDTO> pageCarModelSimpleDTO(StoreCarModelReq storeCarModelReq, Integer pageNo, Integer pageSize);
}

View File

@ -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;
/**
* <p>
* 车型表 服务实现类
* </p>
*
* @author zhangli
* @since 2025-07-12 19:55:31
*/
@Service
public class CarModelRepoImpl extends ServiceImpl<CarModelMapper, CarModelPO> implements CarModelRepo {
@Override
public IPage<CarModelSimpleDTO> pageCarModelSimpleDTO(StoreCarModelReq storeCarModelReq, Integer pageNo, Integer pageSize) {
Page<CarModelSimpleDTO> page = new Page<>(pageNo, pageSize);
return this.getBaseMapper().pageCarModelSimpleDTO(page, storeCarModelReq);
}
}

View File

@ -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<CarModelSimpleDTO> pageCarModelSimpleDTO(StoreCarModelReq storeCarModelReq, Integer pageNo, Integer pageSize);
}

View File

@ -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<CarModelSimpleDTO> pageCarModelSimpleDTO(StoreCarModelReq storeCarModelReq, Integer pageNo, Integer pageSize) {
return carModelRepo.pageCarModelSimpleDTO(storeCarModelReq, pageNo, pageSize);
}
}

View File

@ -68,11 +68,6 @@ hystrix:
thread: thread:
timeoutInMilliseconds: 10000 # 默认熔断超时时间 timeoutInMilliseconds: 10000 # 默认熔断超时时间
#springdoc:
# swagger-ui:
# url: /v3/api-docs
# path: /doc.html
# packages-to-scan: com.sczx.store.controller # 替换为你的 controller 包路径
mybatis-plus: mybatis-plus:
mapper-locations: classpath*:mapper/**/*.xml mapper-locations: classpath*:mapper/**/*.xml

View File

@ -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='租车计费规则表';

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sczx.car.mapper.CarModelMapper">
<select id="pageCarModelSimpleDTO" resultType="com.sczx.car.dto.CarModelSimpleDTO">
<!--
TODO - 根据门店信息查询车型信息,包含车型对应的套餐部分信息如:租赁类型、是否支持免押、是否支持代扣等
-->
</select>
</mapper>

View File

@ -10,7 +10,7 @@ import java.util.Collections;
public class CodeGenerator { 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 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 username = "sczx_user";
private static final String password = "Sczx123@"; private static final String password = "Sczx123@";