228 lines
12 KiB
Java
Raw Normal View History

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
}