运营区特殊计费配置参数定义

This commit is contained in:
attiya 2025-10-24 10:53:29 +08:00
parent 2e8afcdbb2
commit e5fbb2325f
14 changed files with 492 additions and 2 deletions

View File

@ -8,8 +8,10 @@ import com.cdzy.operations.model.entity.EbikeDefaultBillingConfiguration;
import com.cdzy.operations.model.entity.EbikeRegion; import com.cdzy.operations.model.entity.EbikeRegion;
import com.cdzy.operations.model.vo.EbikeDefaultBillingConfigurationVo; import com.cdzy.operations.model.vo.EbikeDefaultBillingConfigurationVo;
import com.cdzy.operations.model.vo.EbikeRegionVo; import com.cdzy.operations.model.vo.EbikeRegionVo;
import com.cdzy.operations.model.vo.EbikeSpecialBillingConfigurationVo;
import com.cdzy.operations.service.EbikeDefaultBillingConfigurationService; import com.cdzy.operations.service.EbikeDefaultBillingConfigurationService;
import com.cdzy.operations.service.EbikeRegionService; import com.cdzy.operations.service.EbikeRegionService;
import com.cdzy.operations.service.EbikeSpecialBillingConfigurationService;
import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.update.UpdateChain; import com.mybatisflex.core.update.UpdateChain;
@ -40,6 +42,9 @@ public class EbikeRegionController {
@Resource @Resource
private EbikeDefaultBillingConfigurationService defaultConfigurationService; private EbikeDefaultBillingConfigurationService defaultConfigurationService;
@Resource
private EbikeSpecialBillingConfigurationService specialBillingConfigurationService;
/** /**
* 添加运营区域 * 添加运营区域
* *
@ -174,4 +179,31 @@ public class EbikeRegionController {
EbikeDefaultBillingConfiguration configuration = defaultConfigurationService.getOne(queryWrapper); EbikeDefaultBillingConfiguration configuration = defaultConfigurationService.getOne(queryWrapper);
return JsonResult.success(configuration); return JsonResult.success(configuration);
} }
/**
* 保存运营区默认计费规则
*
* @param configurationVo 配置信息
* @return 分页对象
*/
@PostMapping("specialConfiguration")
public JsonResult<?> specialConfiguration(@Validated @RequestBody EbikeSpecialBillingConfigurationVo configurationVo) {
specialBillingConfigurationService.specialConfiguration(configurationVo);
return JsonResult.success();
}
/**
* 获取运营区默认计费规则
*
* @param regionId 区域ID
* @return 分页对象
*/
@GetMapping("getspecialConfiguration")
public JsonResult<?> getspecialConfiguration(@RequestParam Long regionId) {
QueryWrapper queryWrapper = QueryWrapper.create()
.where(EBIKE_DEFAULT_BILLING_CONFIGURATION.REGION_ID.eq(regionId));
EbikeDefaultBillingConfiguration configuration = defaultConfigurationService.getOne(queryWrapper);
return JsonResult.success(configuration);
}
} }

View File

@ -0,0 +1,14 @@
package com.cdzy.operations.mapper;
import com.mybatisflex.core.BaseMapper;
import com.cdzy.operations.model.entity.EbiekSpecialDay;
/**
* 高峰日计费配置表 映射层
*
* @author attiya
* @since 2025-10-24
*/
public interface EbiekSpecialDayMapper extends BaseMapper<EbiekSpecialDay> {
}

View File

@ -0,0 +1,14 @@
package com.cdzy.operations.mapper;
import com.mybatisflex.core.BaseMapper;
import com.cdzy.operations.model.entity.EbiekSpecialTime;
/**
* 映射层
*
* @author attiya
* @since 2025-10-24
*/
public interface EbiekSpecialTimeMapper extends BaseMapper<EbiekSpecialTime> {
}

View File

@ -0,0 +1,14 @@
package com.cdzy.operations.mapper;
import com.mybatisflex.core.BaseMapper;
import com.cdzy.operations.model.entity.EbikeSpecialBillingConfiguration;
/**
* 映射层
*
* @author attiya
* @since 2025-10-24
*/
public interface EbikeSpecialBillingConfigurationMapper extends BaseMapper<EbikeSpecialBillingConfiguration> {
}

View File

@ -0,0 +1,71 @@
package com.cdzy.operations.model.entity;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 高峰日计费配置表 实体类
*
* @author attiya
* @since 2025-10-24
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("ebiek_special_day")
public class EbiekSpecialDay implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id
private Long specialDayId;
/**
* 区域ID
*/
private Long regionId;
/**
* 周几
*/
private Integer specialDayNum;
/**
* 起步费用
*/
private BigDecimal baseFee;
/**
* 时长费用
*/
private BigDecimal durationFee;
/**
* 起步时长分钟
*/
private Integer baseDurationMinutes;
/**
* 时长分钟)
*/
private Integer chargeDurationMinutes;
/**
* 记录创建时间
*/
private LocalDateTime createdAt;
private Long createdBy;
}

View File

@ -0,0 +1,77 @@
package com.cdzy.operations.model.entity;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
/**
* 实体类
*
* @author attiya
* @since 2025-10-24
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("ebiek_special_time")
public class EbiekSpecialTime implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id
private Long specialTimeId;
/**
* 区域ID
*/
private Long regionId;
/**
* 开始时间
*/
private LocalTime startTime;
/**
* 结束时间
*/
private LocalTime endTime;
/**
* 起步费用
*/
private BigDecimal baseFee;
/**
* 时长费用
*/
private BigDecimal durationFee;
/**
* 起步时长分钟
*/
private Integer baseDurationMinutes;
/**
* 时长分钟)
*/
private Integer chargeDurationMinutes;
/**
* 创建时间
*/
private LocalDateTime createdAt;
private Long createdBy;
}

View File

@ -30,7 +30,7 @@ public class EbikeDefaultBillingConfiguration implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Id @Id
private Long defaultEbikeDefaultBillingConfigurationId; private Long defaultBillingConfigurationId;
/** /**
* 区域ID - 关联运营区域的唯一标识 * 区域ID - 关联运营区域的唯一标识

View File

@ -0,0 +1,51 @@
package com.cdzy.operations.model.entity;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.sql.Timestamp;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 实体类
*
* @author attiya
* @since 2025-10-24
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("ebike_special_billing_configuration")
public class EbikeSpecialBillingConfiguration implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 高峰日ID
*/
@Id
private Long specialDayId;
/**
* 运营商ID
*/
private Long regionId;
/**
* 1-关闭 2-高峰时段 3-高峰日
*/
private Integer type;
private Timestamp createdAt;
private Long createdBy;
}

View File

@ -0,0 +1,53 @@
package com.cdzy.operations.model.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 高峰日计费配置表 实体类
*
* @author attiya
* @since 2025-10-24
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class EbiekSpecialDayVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 周几
*/
private Integer specialDayNum;
/**
* 起步费用
*/
private BigDecimal baseFee;
/**
* 时长费用
*/
private BigDecimal durationFee;
/**
* 起步时长分钟
*/
private Integer baseDurationMinutes;
/**
* 时长分钟)
*/
private Integer chargeDurationMinutes;
}

View File

@ -0,0 +1,60 @@
package com.cdzy.operations.model.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalTime;
/**
* 实体类
*
* @author attiya
* @since 2025-10-24
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class EbiekSpecialTimeVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 开始时间
*/
private LocalTime startTime;
/**
* 结束时间
*/
private LocalTime endTime;
/**
* 起步费用
*/
private BigDecimal baseFee;
/**
* 时长费用
*/
private BigDecimal durationFee;
/**
* 起步时长分钟
*/
private Integer baseDurationMinutes;
/**
* 时长分钟)
*/
private Integer chargeDurationMinutes;
}

View File

@ -0,0 +1,51 @@
package com.cdzy.operations.model.vo;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
/**
* 实体类
*
* @author attiya
* @since 2025-10-24
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class EbikeSpecialBillingConfigurationVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 区域ID
*/
@NotNull(message = "区域ID不能为空")
private Long regionId;
/**
* 1-关闭 2-高峰时段 3-高峰日
*/
@NotNull(message = "配置类型不能为空")
private Integer type;
/**
* 高峰日配置
*/
private List<EbiekSpecialDayVo> dayConfigs;
/**
* 高峰时段配置
*/
private List<EbiekSpecialTimeVo> timeConfigs;
}

View File

@ -0,0 +1,20 @@
package com.cdzy.operations.service;
import com.cdzy.operations.model.vo.EbikeSpecialBillingConfigurationVo;
import com.mybatisflex.core.service.IService;
import com.cdzy.operations.model.entity.EbikeSpecialBillingConfiguration;
/**
* 服务层
*
* @author attiya
* @since 2025-10-24
*/
public interface EbikeSpecialBillingConfigurationService extends IService<EbikeSpecialBillingConfiguration> {
/**
* 保存特殊时间计费配置
* @param configurationVo 配置信息
*/
void specialConfiguration(EbikeSpecialBillingConfigurationVo configurationVo);
}

View File

@ -0,0 +1,33 @@
package com.cdzy.operations.service.impl;
import com.cdzy.operations.mapper.EbiekSpecialDayMapper;
import com.cdzy.operations.mapper.EbiekSpecialTimeMapper;
import com.cdzy.operations.model.vo.EbikeSpecialBillingConfigurationVo;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.cdzy.operations.model.entity.EbikeSpecialBillingConfiguration;
import com.cdzy.operations.mapper.EbikeSpecialBillingConfigurationMapper;
import com.cdzy.operations.service.EbikeSpecialBillingConfigurationService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
/**
* 服务层实现
*
* @author attiya
* @since 2025-10-24
*/
@Service
public class EbikeSpecialBillingConfigurationServiceImpl extends ServiceImpl<EbikeSpecialBillingConfigurationMapper, EbikeSpecialBillingConfiguration> implements EbikeSpecialBillingConfigurationService{
@Resource
EbiekSpecialDayMapper dayMapper;
@Resource
EbiekSpecialTimeMapper timeMapper;
@Override
public void specialConfiguration(EbikeSpecialBillingConfigurationVo configurationVo) {
}
}

View File

@ -12,7 +12,7 @@ class EbikeStaffApplicationTests {
private static final String mapperPath="D:/ebike_plus/ebike-operations/resources/mapper"; private static final String mapperPath="D:/ebike_plus/ebike-operations/resources/mapper";
private static final String packageName ="com.cdzy.operations"; private static final String packageName ="com.cdzy.operations";
private static final String[] tables= new String[]{ private static final String[] tables= new String[]{
"ebike_default_billing_configuration" "ebiek_special_time","ebiek_special_day"
}; };
@Test @Test