增加根据门店查询车型的接口实现

This commit is contained in:
2025-07-13 11:57:10 +08:00
parent 867a669836
commit 9ded13d973
4 changed files with 151 additions and 4 deletions

View File

@ -29,7 +29,7 @@ public class WebLogAspect {
/** 以 controller 包下定义的所有请求为切入点 */
@Pointcut("execution(public * com.sczx.*.controller.*.*(..))")
@Pointcut("execution(public * com..controller..*.*(..))")
public void webLog() {}
/**

View File

@ -29,7 +29,7 @@ public class CarModelController {
@ApiOperation(value = "分页查询门店车型列表")
@PostMapping("/pageStoreCarModel")
Result<IPage<CarModelSimpleDTO>> pageStoreCarModel(@RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo,
public 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

@ -1,4 +1,104 @@
/** 门店表 */
CREATE TABLE `zc_company_store` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL DEFAULT '' COMMENT '门店名称',
`contact_person` varchar(255) NOT NULL DEFAULT '' COMMENT '联系人',
`phone` char(11) NOT NULL DEFAULT '' COMMENT '手机号码',
`contact_person2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '联系人2',
`phone2` char(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '手机号码2',
`province_id` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '省份',
`province_name` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '省份',
`city_id` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '城市',
`city_name` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '城市',
`area_id` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '区县',
`area_name` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '城市',
`address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '省市区',
`detailed_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '详细地址',
`image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '门店logo',
`latitude` double(10,6) DEFAULT NULL COMMENT '纬度',
`longitude` double(10,6) DEFAULT NULL COMMENT '经度',
`contract_date` varchar(255) DEFAULT '' COMMENT '合同签订日期',
`day_time` varchar(100) DEFAULT '' COMMENT '每日营业开关时间',
`start_time` varchar(100) DEFAULT '' COMMENT '每日营业开始时间',
`end_time` varchar(100) DEFAULT '' COMMENT '每日营业结束时间',
`is_show` tinyint(1) DEFAULT '1' COMMENT '是否显示',
`is_del` tinyint(1) DEFAULT '0' COMMENT '是否删除',
`zuche_ratio` decimal(10,2) DEFAULT '0.00' COMMENT '租车订单分成比例',
`zudian_ratio` decimal(10,2) DEFAULT '0.00' COMMENT '租电订单分成比例',
`daishou_ratio` decimal(10,2) DEFAULT '0.00' COMMENT '以租代售分成比例',
`label` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '1' COMMENT '标签 1.可租车 2.可换电 3.二手车多个用号隔开例如1,2,3',
`operating_company_id` int DEFAULT '0' COMMENT '运营公司id',
`operating_nature` tinyint(1) DEFAULT '1' COMMENT '运营性质 1.直营 0.合作',
`introduction` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '简介',
`bank_account` char(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '对公账号',
`store_number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '门店编号',
`business_license_img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '营业执照',
`audit_status` tinyint(1) DEFAULT '0' COMMENT '审核状态 0.未审核 1.审核通过 2.审核未通过',
`audit_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',
`auditor_id` int DEFAULT NULL COMMENT '审核人id',
`user_id` int DEFAULT NULL COMMENT '所属用户id',
`is_return_allowed` tinyint(1) DEFAULT '0' COMMENT '是否允许回收退租天数 0.不允许 1.允许',
`meal_deposit_price` decimal(10,2) DEFAULT '0.00' COMMENT '企业套餐保证金',
`order_num_limit` int DEFAULT '0' COMMENT '企业充值订单数限制',
`create_by` varchar(25) DEFAULT '' COMMENT '创建人',
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
`update_by` varchar(25) DEFAULT '' COMMENT '修改人',
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` varchar(10) DEFAULT '',
`status` varchar(10) DEFAULT '',
`extend1` varchar(25) DEFAULT '',
`extend2` varchar(25) DEFAULT '',
`extend3` varchar(25) DEFAULT '',
`extend4` varchar(25) DEFAULT '',
`extend5` varchar(25) DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='门店';
/** 车辆表 */
CREATE TABLE `zc_car` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`vin` varchar(30) DEFAULT '' COMMENT '车架号(VIN)',
`license_plate` varchar(30) DEFAULT '' COMMENT '车牌号码',
`brand_id` bigint DEFAULT NULL COMMENT '车辆品牌ID',
`brand_name` varchar(50) DEFAULT '' COMMENT '车辆品牌名称',
`model_id` bigint DEFAULT NULL COMMENT '车辆型号ID',
`model_name` varchar(50) DEFAULT '' COMMENT '车辆型号名称',
`battery_type` varchar(50) DEFAULT '' COMMENT '支持电池类型(48V标准版/100km,48V超长版/200km等)',
`weight` varchar(10) DEFAULT '' COMMENT '整车重量(kg)',
`max_speed` varchar(10) DEFAULT '' COMMENT '最高时速(km/h)',
`lot_number` varchar(30) DEFAULT '' COMMENT 'LOT识别号',
`purchase_date` datetime DEFAULT NULL COMMENT '采购日期',
`purchase_price` decimal(10,2) DEFAULT NULL COMMENT '采购价格(元)',
`belong_type` char(1) DEFAULT '0' COMMENT '车辆归属(0归属于合,1归属运营商)',
`images` varchar(255) DEFAULT '' COMMENT '车辆图片(多个图片用逗号分隔)',
`brs_status` varchar(20) DEFAULT '0' COMMENT 'BRS车辆状态(空闲/使用中/维修中/丢失报损等)',
`iot_status` varchar(20) DEFAULT NULL COMMENT 'IoT设备状态',
`iot_code` varchar(50) DEFAULT NULL COMMENT 'IoT识别码',
`operator_id` bigint DEFAULT NULL COMMENT '所属运营商ID',
`operator_name` varchar(100) DEFAULT '' COMMENT '所属运营商名称',
`store_id` bigint DEFAULT NULL COMMENT '所属门店ID',
`store_name` varchar(100) DEFAULT '' COMMENT '所属门店名称',
`package_id` bigint DEFAULT NULL COMMENT '应用套餐ID',
`package_name` varchar(100) DEFAULT '' COMMENT '应用套餐名称',
`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(100) DEFAULT '' 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_vin` (`vin`),
KEY `idx_license_plate` (`license_plate`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='电动车信息表';
/** 车型表 */
CREATE TABLE `zc_car_model` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '车型ID',
@ -53,3 +153,19 @@ CREATE TABLE `zc_rent_car_rule` (
KEY `idx_rental_type` (`rental_type`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='租车计费规则表';
/** 车型与租车规则关联表 */
CREATE TABLE `zc_car_model_package` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '规则ID',
`car_model_id` bigint NOT NULL,
`car_rule_id` bigint NOT NULL,
`sort_order` int DEFAULT NULL,
`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 '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `car_model_id` (`car_model_id`,`car_rule_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='车型与租车规则关联表';

View File

@ -4,8 +4,39 @@
<select id="pageCarModelSimpleDTO" resultType="com.sczx.car.dto.CarModelSimpleDTO">
<!--
TODO - 根据门店信息查询车型信息,包含车型对应的套餐部分信息如:租赁类型、是否支持免押、是否支持代扣等
根据门店信息查询车型信息,包含车型对应的套餐部分信息如:租赁类型、是否支持免押、是否支持代扣等
-->
SELECT
cm.id AS car_model_id,
s.id AS store_id,
s.store_number AS store_number,
cm.model_name AS model_name,
cm.brand_name AS brand_name,
GROUP_CONCAT(DISTINCT r.rental_type SEPARATOR ',') AS battery_types,
MAX(r.deposit_free) AS deposit_free,
MAX(r.auto_deduct) AS auto_deduct
FROM
zc_car_model cm
JOIN
zc_car c ON cm.id = c.model_id
JOIN
zc_company_store s ON c.store_id = s.id
JOIN
zc_car_model_package mp ON cm.id = mp.car_model_id
JOIN
zc_rent_car_rule r ON mp.car_rule_id = r.id AND r.del_flag = '0' AND r.status = '0'
<where>
s.id = #{storeCarModelReq.storeId}
<if test="storeCarModelReq.depositFree != null and storeCarModelReq.depositFree != ''">
AND r.deposit_free = #{storeCarModelReq.depositFree}
</if>
<if test="storeCarModelReq.autoDeduct != null and storeCarModelReq.autoDeduct != ''">
AND r.auto_deduct = #{storeCarModelReq.autoDeduct}
</if>
AND cm.del_flag = '0' AND cm.status = '0'
</where>
GROUP BY
cm.id, s.id, s.store_number, cm.model_name, cm.brand_name
</select>
</mapper>