212 lines
7.4 KiB
Java
Raw Normal View History

package com.cdzy.operations.controller;
2025-10-22 15:07:04 +08:00
import cn.dev33.satoken.stp.StpUtil;
import com.cdzy.common.model.request.PageParam;
import com.cdzy.common.model.response.JsonResult;
2025-10-22 15:07:04 +08:00
import com.cdzy.operations.enums.RegionStatus;
2025-10-24 11:23:02 +08:00
import com.cdzy.operations.model.dto.EbikeSpecialBillingConfigurationDto;
2025-10-23 10:14:41 +08:00
import com.cdzy.operations.model.entity.EbikeDefaultBillingConfiguration;
import com.cdzy.operations.model.entity.EbikeRegion;
2025-10-23 10:14:41 +08:00
import com.cdzy.operations.model.vo.EbikeDefaultBillingConfigurationVo;
import com.cdzy.operations.model.vo.EbikeRegionVo;
import com.cdzy.operations.model.vo.EbikeSpecialBillingConfigurationVo;
2025-10-23 10:14:41 +08:00
import com.cdzy.operations.service.EbikeDefaultBillingConfigurationService;
import com.cdzy.operations.service.EbikeRegionService;
import com.cdzy.operations.service.EbikeSpecialBillingConfigurationService;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
2025-10-22 15:07:04 +08:00
import com.mybatisflex.core.update.UpdateChain;
import com.mybatisflex.core.util.StringUtil;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
2025-10-23 10:14:41 +08:00
import static com.cdzy.operations.model.entity.table.EbikeDefaultBillingConfigurationTableDef.EBIKE_DEFAULT_BILLING_CONFIGURATION;
import static com.cdzy.operations.model.entity.table.EbikeRegionTableDef.EBIKE_REGION;
2025-10-24 11:23:02 +08:00
import static com.cdzy.operations.model.entity.table.EbikeSpecialBillingConfigurationTableDef.EBIKE_SPECIAL_BILLING_CONFIGURATION;
/**
* 运营区域表 控制层
*
* @author attiya
* @since 2025-10-22
*/
@RestController
@RequestMapping("/ebikeRegion")
@Validated
public class EbikeRegionController {
@Resource
private EbikeRegionService ebikeRegionService;
2025-10-23 10:14:41 +08:00
@Resource
private EbikeDefaultBillingConfigurationService defaultConfigurationService;
@Resource
private EbikeSpecialBillingConfigurationService specialBillingConfigurationService;
/**
* 添加运营区域
*
* @param ebikeRegion 运营区域
* @return {@code true} 添加成功{@code false} 添加失败
*/
@PostMapping("save")
public JsonResult<?> save(@Validated @RequestBody EbikeRegionVo ebikeRegion) {
ebikeRegionService.save(ebikeRegion);
return JsonResult.success();
}
/**
* 根据主键删除运营区域表
*
* @param regionId 主键
* @return {@code true} 删除成功{@code false} 删除失败
*/
@GetMapping("remove")
public JsonResult<?> remove(@Validated @RequestParam Long regionId) {
ebikeRegionService.removeById(regionId);
return JsonResult.success();
}
/**
* 根据主键更新运营区域表
*
* @param ebikeRegion 运营区域表
* @return {@code true} 更新成功{@code false} 更新失败
*/
2025-10-22 15:07:04 +08:00
@PostMapping("update")
public JsonResult<?> update(@RequestBody EbikeRegionVo ebikeRegion) {
ebikeRegionService.update(ebikeRegion);
return JsonResult.success();
}
/**
* 查询所有运营区域表
*
* @return 所有数据
*/
@GetMapping("list")
public JsonResult<?> list() {
List<EbikeRegion> list = ebikeRegionService.list();
return JsonResult.success(list);
}
/**
* 根据运营区域表主键获取详细信息
*
* @param regionId 运营区域表主键
* @return 运营区域表详情
*/
@GetMapping("getInfo")
public JsonResult<?> getInfo(@RequestParam Long regionId) {
EbikeRegion ebikeRegion = ebikeRegionService.getById(regionId);
return JsonResult.success(ebikeRegion);
}
/**
* 分页查询运营区域表
*
* @param pageParam 分页对象
* @param regionName 运营区名称
* @param regionSimpleName 运营区简称
* @return 分页对象
*/
@GetMapping("page")
public JsonResult<?> page(PageParam pageParam, String regionName, String regionSimpleName) {
QueryWrapper queryWrapper = QueryWrapper.create()
.where(EBIKE_REGION.REGION_NAME.like(regionName, StringUtil.hasText(regionName)))
.where(EBIKE_REGION.REGION_SIMPLE_NAME.like(regionSimpleName, StringUtil.hasText(regionSimpleName)));
Page<EbikeRegion> page = ebikeRegionService.page(pageParam.getPage(), queryWrapper);
return JsonResult.success(page);
}
2025-10-22 15:07:04 +08:00
/**
* 开始运营
*
* @param regionId 运营区主键
* @return 分页对象
*/
@GetMapping("commenceOperation")
public JsonResult<?> commenceOperation(@RequestParam Long regionId) {
UpdateChain.of(EbikeRegion.class)
.where(EbikeRegion::getRegionId).eq(regionId)
.set(EBIKE_REGION.STATUS, RegionStatus.OPERATION)
.set(EBIKE_REGION.UPDATED_BY, StpUtil.getLoginIdAsLong())
.update();
return JsonResult.success();
}
/**
* 结束运营
*
* @param regionId 运营区主键
* @return 分页对象
*/
@GetMapping("stopOperation")
public JsonResult<?> stopOperation(@RequestParam Long regionId) {
UpdateChain.of(EbikeRegion.class)
.where(EbikeRegion::getRegionId).eq(regionId)
.set(EBIKE_REGION.STATUS, RegionStatus.STOP_OPERATION)
.set(EBIKE_REGION.UPDATED_BY, StpUtil.getLoginIdAsLong())
.update();
return JsonResult.success();
}
2025-10-23 10:14:41 +08:00
/**
* 保存运营区默认计费规则
*
* @param configurationVo 配置信息
* @return 分页对象
*/
@PostMapping("defaultConfiguration")
public JsonResult<?> defaultConfiguration(@Validated @RequestBody EbikeDefaultBillingConfigurationVo configurationVo) {
defaultConfigurationService.defaultConfiguration(configurationVo);
return JsonResult.success();
}
/**
* 获取运营区默认计费规则
*
* @param regionId 区域ID
* @return 分页对象
*/
@GetMapping("getDefaultConfiguration")
public JsonResult<?> getDefaultConfiguration(@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);
}
/**
2025-10-24 11:23:02 +08:00
* 保存运营区高峰计费规则
*
* @param configurationVo 配置信息
* @return 分页对象
*/
@PostMapping("specialConfiguration")
public JsonResult<?> specialConfiguration(@Validated @RequestBody EbikeSpecialBillingConfigurationVo configurationVo) {
specialBillingConfigurationService.specialConfiguration(configurationVo);
return JsonResult.success();
}
/**
2025-10-24 11:23:02 +08:00
* 获取运营区高峰计费规则
*
* @param regionId 区域ID
* @return 分页对象
*/
2025-10-24 11:23:02 +08:00
@GetMapping("getSpecialConfiguration")
public JsonResult<?> getSpecialConfiguration(@RequestParam Long regionId) {
QueryWrapper queryWrapper = QueryWrapper.create()
2025-10-24 11:23:02 +08:00
.where(EBIKE_SPECIAL_BILLING_CONFIGURATION.REGION_ID.eq(regionId));
EbikeSpecialBillingConfigurationDto configurationDto = specialBillingConfigurationService.getMapper().selectOneWithRelationsByQueryAs(queryWrapper, EbikeSpecialBillingConfigurationDto.class);
return JsonResult.success(configurationDto);
}
}