2025-04-14 09:35:36 +08:00
|
|
|
package com.cdzy.ebikeoperate.controller;
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson2.JSONArray;
|
|
|
|
|
import com.cdzy.common.model.JsonResult;
|
|
|
|
|
import com.cdzy.ebikeoperate.model.dto.request.ReqEbikeSysRcostsetDto;
|
|
|
|
|
import com.cdzy.ebikeoperate.model.dto.request.ReqEbikeSysRcostsetTimePeriodDto;
|
|
|
|
|
import com.cdzy.ebikeoperate.model.dto.request.ReqEbikeSysRcostsetUpdateDto;
|
|
|
|
|
import com.cdzy.ebikeoperate.model.dto.request.ReqEbikeSysRcostsetWeekDto;
|
|
|
|
|
import com.cdzy.ebikeoperate.model.dto.response.ResEbikeSysRcostsetDto;
|
|
|
|
|
import com.cdzy.ebikeoperate.model.dto.response.ResEbikeSysRcostsetWeekDto;
|
|
|
|
|
import com.cdzy.ebikeoperate.model.dto.response.ResEbikeSysRcostsetTimePeriodDto;
|
|
|
|
|
import com.cdzy.ebikeoperate.model.pojo.EbikeSysRcostset;
|
|
|
|
|
import com.cdzy.ebikeoperate.model.pojo.EbikeSysRcostsetTimePeriod;
|
|
|
|
|
import com.cdzy.ebikeoperate.model.pojo.EbikeSysRcostsetWeek;
|
|
|
|
|
import com.cdzy.ebikeoperate.service.EbikeSysRcostsetService;
|
|
|
|
|
import com.cdzy.ebikeoperate.service.EbikeSysRcostsetTimePeriodService;
|
|
|
|
|
import com.cdzy.ebikeoperate.service.EbikeSysRcostsetWeekService;
|
2025-04-30 08:55:38 +08:00
|
|
|
import com.mybatisflex.core.keygen.impl.SnowFlakeIDKeyGenerator;
|
2025-04-14 09:35:36 +08:00
|
|
|
import com.mybatisflex.core.query.QueryWrapper;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeSysRcostsetTableDef.EBIKE_SYS_RCOSTSET;
|
|
|
|
|
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeSysRcostsetTimePeriodTableDef.EBIKE_SYS_RCOSTSET_TIME_PERIOD;
|
|
|
|
|
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeSysRcostsetWeekTableDef.EBIKE_SYS_RCOSTSET_WEEK;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 区域费用配置控制层
|
|
|
|
|
*
|
|
|
|
|
* @author:Ding
|
|
|
|
|
* @ClassName:EbikeSysRcostsetController
|
|
|
|
|
* @Package:com.cdzy.ebikeoperate.controller.EbikeSysRcostsetController
|
|
|
|
|
* @Description:区域费用配置控制层
|
|
|
|
|
* @CreateDate:2025年04月08日
|
|
|
|
|
* @Version:V1.0
|
|
|
|
|
**/
|
|
|
|
|
@Slf4j
|
|
|
|
|
@RestController
|
|
|
|
|
@RequestMapping("/ebikesysrcostset")
|
|
|
|
|
public class EbikeSysRcostsetController {
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private EbikeSysRcostsetService ebikeSysRcostsetService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private EbikeSysRcostsetTimePeriodService ebikeSysRcostsetTimePeriodService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private EbikeSysRcostsetWeekService ebikeSysRcostsetWeekService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 区域费用配置新增
|
|
|
|
|
*
|
|
|
|
|
* @param reqEbikeSysRcostsetDto 区域费用配置实体
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@PostMapping("regionFeeConfigAdds")
|
|
|
|
|
public JsonResult<?> regionFeeConfigAdd(@RequestBody ReqEbikeSysRcostsetDto reqEbikeSysRcostsetDto) {
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
EbikeSysRcostset ebikeSysRcostset = new EbikeSysRcostset();
|
|
|
|
|
BeanUtils.copyProperties(reqEbikeSysRcostsetDto, ebikeSysRcostset);
|
|
|
|
|
boolean save = ebikeSysRcostsetService.save(ebikeSysRcostset);
|
|
|
|
|
if (save) {
|
|
|
|
|
if (ebikeSysRcostset.getTimeDivisionCharging() == '2') {
|
|
|
|
|
List<ReqEbikeSysRcostsetTimePeriodDto> reqEbikeSysRcostsetTimePeriodDto =
|
|
|
|
|
reqEbikeSysRcostsetDto.getEbikeSysRcostsetTimePeriodDtos();
|
|
|
|
|
|
|
|
|
|
if (!reqEbikeSysRcostsetTimePeriodDto.isEmpty()) {
|
|
|
|
|
List<EbikeSysRcostsetTimePeriod> ebikeSysRcostsetTimePeriods = new ArrayList<>();
|
|
|
|
|
reqEbikeSysRcostsetTimePeriodDto.forEach(item -> {
|
|
|
|
|
EbikeSysRcostsetTimePeriod ebikeSysRcostsetTimePeriod = new EbikeSysRcostsetTimePeriod();
|
|
|
|
|
BeanUtils.copyProperties(item, ebikeSysRcostsetTimePeriod);
|
|
|
|
|
ebikeSysRcostsetTimePeriod.setCostConfigId(ebikeSysRcostset.getCostConfigId());
|
|
|
|
|
ebikeSysRcostsetTimePeriods.add(ebikeSysRcostsetTimePeriod);
|
|
|
|
|
});
|
|
|
|
|
ebikeSysRcostsetTimePeriodService.saveBatch(ebikeSysRcostsetTimePeriods);
|
|
|
|
|
}
|
|
|
|
|
} else if (ebikeSysRcostset.getTimeDivisionCharging() == '3') {
|
|
|
|
|
List<ReqEbikeSysRcostsetWeekDto> reqEbikeSysRcostsetWeekDto =
|
|
|
|
|
reqEbikeSysRcostsetDto.getEbikeSysRcostsetWeekDtos();
|
|
|
|
|
if (!reqEbikeSysRcostsetWeekDto.isEmpty()) {
|
|
|
|
|
List<EbikeSysRcostsetWeek> ebikeSysRcostsetWeeks = new ArrayList<>();
|
|
|
|
|
reqEbikeSysRcostsetWeekDto.forEach(item -> {
|
|
|
|
|
EbikeSysRcostsetWeek ebikeSysRcostsetWeek = new EbikeSysRcostsetWeek();
|
|
|
|
|
BeanUtils.copyProperties(item, ebikeSysRcostsetWeek);
|
|
|
|
|
ebikeSysRcostsetWeek.setWeek(item.getWeek().toJSONString());
|
|
|
|
|
ebikeSysRcostsetWeek.setCostConfigId(ebikeSysRcostset.getCostConfigId());
|
|
|
|
|
ebikeSysRcostsetWeeks.add(ebikeSysRcostsetWeek);
|
|
|
|
|
});
|
|
|
|
|
ebikeSysRcostsetWeekService.saveBatch(ebikeSysRcostsetWeeks);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return JsonResult.success("保存成功");
|
|
|
|
|
}
|
|
|
|
|
return JsonResult.failed("保存失败");
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("regionFeeConfigAdd===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
|
|
|
return JsonResult.failed("保存失败");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据区域id获取配置信息
|
|
|
|
|
*
|
|
|
|
|
* @param regionId 区域id
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("getRegionFeeConfigById")
|
|
|
|
|
public JsonResult<?> getRegionFeeConfigById(@RequestParam(value = "regionId")
|
|
|
|
|
String regionId) {
|
|
|
|
|
try {
|
|
|
|
|
ResEbikeSysRcostsetDto resEbikeSysRcostsetDto = new ResEbikeSysRcostsetDto();
|
|
|
|
|
QueryWrapper query = QueryWrapper.create();
|
|
|
|
|
query.eq(EBIKE_SYS_RCOSTSET.REGION_ID.getName(), regionId);
|
|
|
|
|
EbikeSysRcostset ebikeSysRcostset = ebikeSysRcostsetService.getOne(query);
|
|
|
|
|
if (ebikeSysRcostset == null) {
|
|
|
|
|
return JsonResult.success(null);
|
|
|
|
|
}
|
|
|
|
|
BeanUtils.copyProperties(ebikeSysRcostset, resEbikeSysRcostsetDto);
|
|
|
|
|
resEbikeSysRcostsetDto.setEbikeSysRcostsetWeekDtos(new ArrayList<>());
|
|
|
|
|
resEbikeSysRcostsetDto.setEbikeSysRcostsetTimePeriodDtos(new ArrayList<>());
|
|
|
|
|
if (ebikeSysRcostset.getTimeDivisionCharging() == '2') {
|
|
|
|
|
query.clear();
|
|
|
|
|
query.eq(EBIKE_SYS_RCOSTSET_TIME_PERIOD.COST_CONFIG_ID.getName(), ebikeSysRcostset.getCostConfigId());
|
|
|
|
|
List<ResEbikeSysRcostsetTimePeriodDto> resEbikeSysRcostsetTimePeriodDtos =
|
|
|
|
|
ebikeSysRcostsetTimePeriodService.listAs(query, ResEbikeSysRcostsetTimePeriodDto.class);
|
|
|
|
|
resEbikeSysRcostsetDto.setEbikeSysRcostsetTimePeriodDtos(
|
|
|
|
|
resEbikeSysRcostsetTimePeriodDtos == null ?
|
|
|
|
|
new ArrayList<>() : resEbikeSysRcostsetTimePeriodDtos);
|
|
|
|
|
} else if (ebikeSysRcostset.getTimeDivisionCharging() == '3') {
|
|
|
|
|
query.clear();
|
|
|
|
|
query.eq(EBIKE_SYS_RCOSTSET_WEEK.COST_CONFIG_ID.getName(), ebikeSysRcostset.getCostConfigId());
|
|
|
|
|
List<EbikeSysRcostsetWeek> list = ebikeSysRcostsetWeekService.list(query);
|
|
|
|
|
List<ResEbikeSysRcostsetWeekDto> reqEbikeSysRcostsetWeekDtos = new ArrayList<>();
|
|
|
|
|
list.forEach(item -> {
|
|
|
|
|
ResEbikeSysRcostsetWeekDto resEbikeSysRcostsetWeekDto = new ResEbikeSysRcostsetWeekDto();
|
|
|
|
|
BeanUtils.copyProperties(item, resEbikeSysRcostsetWeekDto);
|
|
|
|
|
resEbikeSysRcostsetWeekDto.setWeek(JSONArray.parseArray(item.getWeek()));
|
|
|
|
|
reqEbikeSysRcostsetWeekDtos.add(resEbikeSysRcostsetWeekDto);
|
|
|
|
|
});
|
|
|
|
|
resEbikeSysRcostsetDto.setEbikeSysRcostsetWeekDtos(reqEbikeSysRcostsetWeekDtos);
|
|
|
|
|
}
|
|
|
|
|
return JsonResult.success(resEbikeSysRcostsetDto);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("getRegionFeeConfigById===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
|
|
|
return JsonResult.failed("获取失败");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 更新区域费用配置信息
|
|
|
|
|
*
|
|
|
|
|
* @param reqEbikeSysRcostsetUpdateDto 区域费用配置实体
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@PostMapping("updateRegionFeeConfig")
|
|
|
|
|
public JsonResult<?> updateRegionFeeConfig(@RequestBody ReqEbikeSysRcostsetUpdateDto reqEbikeSysRcostsetUpdateDto) {
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
EbikeSysRcostset ebikeSysRcostset = new EbikeSysRcostset();
|
|
|
|
|
BeanUtils.copyProperties(reqEbikeSysRcostsetUpdateDto, ebikeSysRcostset);
|
|
|
|
|
ebikeSysRcostset.setUpdatedAt(LocalDateTime.now());
|
|
|
|
|
boolean b = ebikeSysRcostsetService.updateById(ebikeSysRcostset);
|
|
|
|
|
if (b) {
|
|
|
|
|
QueryWrapper query = QueryWrapper.create();
|
|
|
|
|
query.eq(EBIKE_SYS_RCOSTSET_TIME_PERIOD.COST_CONFIG_ID.getName(), ebikeSysRcostset.getCostConfigId());
|
|
|
|
|
ebikeSysRcostsetTimePeriodService.remove(query);
|
|
|
|
|
query.clear();
|
|
|
|
|
query.eq(EBIKE_SYS_RCOSTSET_WEEK.COST_CONFIG_ID.getName(), ebikeSysRcostset.getCostConfigId());
|
|
|
|
|
ebikeSysRcostsetWeekService.remove(query);
|
|
|
|
|
if (ebikeSysRcostset.getTimeDivisionCharging() == '2') {
|
|
|
|
|
List<ReqEbikeSysRcostsetTimePeriodDto> reqEbikeSysRcostsetTimePeriodDto =
|
|
|
|
|
reqEbikeSysRcostsetUpdateDto.getEbikeSysRcostsetTimePeriodDtos();
|
|
|
|
|
|
|
|
|
|
if (!reqEbikeSysRcostsetTimePeriodDto.isEmpty()) {
|
|
|
|
|
List<EbikeSysRcostsetTimePeriod> ebikeSysRcostsetTimePeriods = new ArrayList<>();
|
|
|
|
|
reqEbikeSysRcostsetTimePeriodDto.forEach(item -> {
|
|
|
|
|
EbikeSysRcostsetTimePeriod ebikeSysRcostsetTimePeriod = new EbikeSysRcostsetTimePeriod();
|
|
|
|
|
BeanUtils.copyProperties(item, ebikeSysRcostsetTimePeriod);
|
|
|
|
|
ebikeSysRcostsetTimePeriod.setCostConfigId(ebikeSysRcostset.getCostConfigId());
|
|
|
|
|
ebikeSysRcostsetTimePeriods.add(ebikeSysRcostsetTimePeriod);
|
|
|
|
|
});
|
|
|
|
|
ebikeSysRcostsetTimePeriodService.saveBatch(ebikeSysRcostsetTimePeriods);
|
|
|
|
|
}
|
|
|
|
|
} else if (ebikeSysRcostset.getTimeDivisionCharging() == '3') {
|
|
|
|
|
List<ReqEbikeSysRcostsetWeekDto> reqEbikeSysRcostsetWeekDto =
|
|
|
|
|
reqEbikeSysRcostsetUpdateDto.getEbikeSysRcostsetWeekDtos();
|
|
|
|
|
if (!reqEbikeSysRcostsetWeekDto.isEmpty()) {
|
|
|
|
|
List<EbikeSysRcostsetWeek> ebikeSysRcostsetWeeks = new ArrayList<>();
|
|
|
|
|
reqEbikeSysRcostsetWeekDto.forEach(item -> {
|
|
|
|
|
EbikeSysRcostsetWeek ebikeSysRcostsetWeek = new EbikeSysRcostsetWeek();
|
|
|
|
|
BeanUtils.copyProperties(item, ebikeSysRcostsetWeek);
|
|
|
|
|
ebikeSysRcostsetWeek.setWeek(item.getWeek().toJSONString());
|
|
|
|
|
ebikeSysRcostsetWeek.setCostConfigId(ebikeSysRcostset.getCostConfigId());
|
|
|
|
|
ebikeSysRcostsetWeeks.add(ebikeSysRcostsetWeek);
|
|
|
|
|
});
|
|
|
|
|
ebikeSysRcostsetWeekService.saveBatch(ebikeSysRcostsetWeeks);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return JsonResult.success("更新成功");
|
|
|
|
|
}
|
|
|
|
|
return JsonResult.failed("更新失败");
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("updateRegionFeeConfig===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
|
|
|
return JsonResult.failed("更新失败");
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-04-30 08:55:38 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 生成一个雪花id
|
|
|
|
|
*
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("createSnowflakeId")
|
|
|
|
|
public JsonResult<Object> createSnowflakeId() {
|
|
|
|
|
|
|
|
|
|
SnowFlakeIDKeyGenerator snowFlakeIDKeyGenerator = new SnowFlakeIDKeyGenerator();
|
|
|
|
|
long dataCenterId = snowFlakeIDKeyGenerator.nextId();
|
|
|
|
|
return JsonResult.success(dataCenterId);
|
|
|
|
|
}
|
2025-04-14 09:35:36 +08:00
|
|
|
}
|