Compare commits

..

No commits in common. "0d4cb8b819ba38b636d33b8d567741dad828654d" and "5a5623069eacaffae553af94d65e5d217aed981d" have entirely different histories.

10 changed files with 52 additions and 252 deletions

View File

@ -1,10 +1,18 @@
package com.ebike.feign.model.rsp;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.RelationOneToMany;
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.time.LocalDateTime;
import java.util.List;
/**
* 实体类
@ -75,6 +83,9 @@ public class FeignEbikeRegionDto implements Serializable {
*/
private Long updateStaff;
private FeignEbikeSysRoperateset sysRoperateset;
/**
* 运营区是否运营中1-0-
*/
private Integer inOperation;
}

View File

@ -1,219 +0,0 @@
package com.ebike.feign.model.rsp;
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.LocalDate;
import java.time.LocalDateTime;
/**
* 区域运营信息配置表 实体类
*
* @author user
* @since 2025-04-28
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class FeignEbikeSysRoperateset implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
private String id;
/**
* 区域ID
*/
private String operationRegionId;
/**
* 是否运营;1运营中 0停止运营
*/
private String isOperate;
/**
* 运营类型;0默认 1按时间段运营 2按周运营
*/
private String operateType;
/**
* 停运公告;类型为0时null
*/
private String stopInfo;
/**
* 访问渠道;每一位表示一种支付是支持否不支持
*/
private String channel;
/**
* 认证条件;0默认 1实名认证 2学生认证 3无需认证
*/
private String authCondition;
/**
* 是否首单免费;1是 0否
*/
private String firstFree;
/**
* 是否首单免调度费;1是 0否
*/
private String firstFreeDispatch;
/**
* 免费时长不计入计费时长;1是 0否
*/
private String freeNotRecord;
/**
* 每日免费次数;0为不限制大于0为免费次数使用次数
*/
private Integer freeEveryday;
/**
* 实名开启人脸识别;1是 0否
*/
private String faceRecogintion;
/**
* 是否收取押金;1是 0否
*/
private String deposit;
/**
* 违章罚款限制骑行;1是 0否
*/
private String violationFine;
/**
* 违章最低限制笔数
*/
private Integer minVoliation;
/**
* 地图显示附近车辆;1是 0否
*/
private String showNearbyBike;
/**
* 地图显示附近站点;1是 0否
*/
private String showNearbyStation;
/**
* 是否开启订单申诉;1是 0否
*/
private String orderAppeal;
/**
* 扣款优先使用余额;1是 0否
*/
private String balancePrefer;
/**
* 是否开启充值;1是 0否
*/
private String enableRecharge;
/**
* 地图车辆显示电量;1是 0否
*/
private String showElectricity;
/**
* 开启余额退款;1是 0否
*/
private String balanceRefund;
/**
* 开启车辆分账;1是 0否
*/
private String splitBilling;
/**
* 开启用户申请开票;1是 0否
*/
private String userApplyIncoice;
/**
* 用车前学习;1是 0否
*/
private String useStudy;
/**
* 是否显示保险信息;1是 0否
*/
private String showEnsuracy;
/**
* 扫码后详情显示;1是 0否
*/
private String showDetails;
/**
* 扫码后直接开锁;1是 0否
*/
private String openLockDirect;
/**
* 充值规则;默认5,10,20,50,100,200
*/
private String rechargeRule;
/**
* 在线客服;1开启 0关闭
*/
private String onlineService;
/**
* 首单免费金额
*/
private BigDecimal firstFreeAmount;
/**
* 申诉照片必传
*/
private String appealPicture;
/**
* 开票开始时间
*/
private LocalDate issueAnInvoiceStartTime;
/**
* 0公里申诉自动退款
*/
private String automaticRefund;
/**
* 余额退款自动通过
*/
private String balanceAutomaticRefund;
/**
* 余额退款扣减赠送金
*/
private String deductionGift;
/**
* 停运时间起
*/
private LocalDateTime stopStartTime;
/**
* 停运时间止
*/
private LocalDateTime stopEndTime;
}

View File

@ -5,15 +5,13 @@ import com.cdzy.common.enums.Code;
import com.cdzy.common.model.JsonResult;
import com.cdzy.common.model.PageParam;
import com.cdzy.common.model.ReqBatchRegionDto;
import com.cdzy.ebikeoperate.enums.EbikeRegionInOperation;
import com.cdzy.ebikeoperate.enums.RegionLevelType;
import com.cdzy.ebikeoperate.mapper.EbikeRegionLevelMapper;
import com.cdzy.ebikeoperate.mapper.EbikeRegionoperationMapper;
import com.cdzy.ebikeoperate.mapper.EbikeSiteTypeMapper;
import com.cdzy.ebikeoperate.mapper.EbikeStaffRegionMapper;
import com.cdzy.ebikeoperate.model.dto.request.ReqAuthorizeOperationDto;
import com.cdzy.ebikeoperate.model.dto.request.ReqEbikeOperationRegionDto;
import com.cdzy.ebikeoperate.model.dto.request.ReqSiteRegionDto;
import com.cdzy.ebikeoperate.model.dto.request.ReqUserOperateDto;
import com.cdzy.ebikeoperate.model.dto.request.*;
import com.cdzy.ebikeoperate.model.dto.response.*;
import com.cdzy.ebikeoperate.model.pojo.*;
import com.cdzy.ebikeoperate.service.EbikeAdministrationZoneService;
@ -25,6 +23,7 @@ import com.ebike.feign.model.rsp.StaffFeign;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryMethods;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.update.UpdateChain;
import jakarta.annotation.Resource;
import jakarta.validation.constraints.NotNull;
import org.springframework.validation.annotation.Validated;
@ -146,6 +145,19 @@ public class EbikeRegionController {
return JsonResult.success(list);
}
/**
* 批量停止运营
*
* @return {@code 200} 添加成功{@code 500} 添加失败
*/
@PostMapping("stopOperation")
public JsonResult<?> stopOperation(@RequestBody @Validated ReqBatchRegionDto batchRegionDto) {
UpdateChain.of(EbikeOperationRegion.class)
.set(EBIKE_OPERATION_REGION.IN_OPERATION, EbikeRegionInOperation.OUT)
.where(EBIKE_OPERATION_REGION.OPERATION_REGION_ID.in(batchRegionDto.getIds()))
.update();
return JsonResult.success();
}
/**
* 获取当前登录用户所有运营区

View File

@ -6,6 +6,6 @@ package com.cdzy.ebikeoperate.enums;
*/
public interface EbikeRegionInOperation {
String IN = "1";
String OUT = "0";
int IN = 1;
int OUT = 0;
}

View File

@ -1,7 +1,6 @@
package com.cdzy.ebikeoperate.model.dto.response;
import com.cdzy.ebikeoperate.model.pojo.EbikePoint;
import com.cdzy.ebikeoperate.model.pojo.EbikeSysRoperateset;
import com.mybatisflex.annotation.RelationOneToMany;
import lombok.Data;
@ -84,9 +83,6 @@ public class ResOperationRegionInfo {
@RelationOneToMany(selfField = "operationRegionId",targetField = "regionId")
private List<EbikePoint> points;
@RelationOneToMany(selfField = "operationRegionId",targetField = "operationRegionId")
private EbikeSysRoperateset sysRoperateset;
/**
* 级别

View File

@ -1,18 +1,18 @@
package com.cdzy.ebikeoperate.model.pojo;
import com.ebike.feign.model.rsp.FeignEbikeSysRoperateset;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 运营区域配置表 实体类
*
@ -86,6 +86,11 @@ public class EbikeOperationRegion implements Serializable {
*/
private Long updateStaff;
/**
* 运营区是否运营中1-0-
*/
@Column(onInsertValue = "1")
private Integer inOperation;
/**
* 逻辑删除
@ -98,5 +103,5 @@ public class EbikeOperationRegion implements Serializable {
*/
private Integer operationLevel;
private FeignEbikeSysRoperateset sysRoperateset;
}

View File

@ -4,14 +4,15 @@ import cn.dev33.satoken.stp.StpUtil;
import com.cdzy.common.enums.Code;
import com.cdzy.common.model.JsonResult;
import com.cdzy.common.model.PageParam;
import com.cdzy.common.model.ReqBatchRegionDto;
import com.cdzy.common.model.ResGPSDto;
import com.cdzy.ebikeoperate.enums.EbikeRegionInOperation;
import com.cdzy.ebikeoperate.enums.RegionLevelType;
import com.cdzy.ebikeoperate.mapper.EbikeAdministrationZoneMapper;
import com.cdzy.ebikeoperate.mapper.EbikeOperationRegionMapper;
import com.cdzy.ebikeoperate.mapper.EbikePointMapper;
import com.cdzy.ebikeoperate.mapper.EbikeStaffRegionMapper;
import com.cdzy.ebikeoperate.model.dto.request.ReqAuthorizeOperationDto;
import com.cdzy.common.model.ReqBatchRegionDto;
import com.cdzy.ebikeoperate.model.dto.request.ReqEbikeOperationRegionDto;
import com.cdzy.ebikeoperate.model.dto.request.ReqEbikePointDto;
import com.cdzy.ebikeoperate.model.dto.response.EbikeOperationRegionPageDto;
@ -48,7 +49,6 @@ import static com.cdzy.ebikeoperate.model.pojo.table.EbikePointTableDef.EBIKE_PO
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeRegionLevelTableDef.EBIKE_REGION_LEVEL;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeSiteRegionTableDef.EBIKE_SITE_REGION;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeStaffRegionTableDef.EBIKE_STAFF_REGION;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeSysRoperatesetTableDef.EBIKE_SYS_ROPERATESET;
/**
* 运营区域配置表 服务层实现
@ -86,6 +86,7 @@ public class EbikeOperationRegionServiceImpl extends ServiceImpl<EbikeOperationR
Long orgId = staffFeign.getOrgId();
operationRegion.setCreatedStaff(staffFeign.getStaffId());
operationRegion.setOrgId(orgId);
operationRegion.setInOperation(EbikeRegionInOperation.IN);
this.mapper.insert(operationRegion);
List<ReqEbikePointDto> points = operationRegionDto.getPoints();
if (points != null && !points.isEmpty()) {
@ -96,14 +97,13 @@ public class EbikeOperationRegionServiceImpl extends ServiceImpl<EbikeOperationR
@Override
public Page<EbikeOperationRegionPageDto> pageOperationRegion(PageParam pageParam, String simpleName, String regionName, Integer inOperation) {
QueryWrapper queryWrapper = QueryWrapper.create()
.select(EBIKE_OPERATION_REGION.ALL_COLUMNS, EBIKE_ADMINISTRATION_ZONE.NAME.as(ResOperationRegionInfo::getZoneName), EBIKE_REGION_LEVEL.LEVEL_NAME,EBIKE_SYS_ROPERATESET.IS_OPERATE.as(ResOperationRegionInfo::getInOperation))
.select(EBIKE_OPERATION_REGION.ALL_COLUMNS, EBIKE_ADMINISTRATION_ZONE.NAME.as(ResOperationRegionInfo::getZoneName), EBIKE_REGION_LEVEL.LEVEL_NAME)
.leftJoin(EBIKE_REGION_LEVEL).on(EBIKE_REGION_LEVEL.LEVEL_VALUE.eq(EBIKE_OPERATION_REGION.OPERATION_LEVEL))
.leftJoin(EBIKE_ADMINISTRATION_ZONE).on(EBIKE_ADMINISTRATION_ZONE.ID.eq(EBIKE_OPERATION_REGION.ZONE_ID))
.leftJoin(EBIKE_SYS_ROPERATESET).on(EBIKE_SYS_ROPERATESET.OPERATION_REGION_ID.eq(EBIKE_OPERATION_REGION.OPERATION_REGION_ID))
.where(EBIKE_REGION_LEVEL.LEVEL_TYPE.eq(RegionLevelType.OPERATION))
.where(EBIKE_OPERATION_REGION.SIMPLE_NAME.eq(simpleName, StringUtils.hasText(simpleName)))
.where(EBIKE_OPERATION_REGION.OPERATION_REGION_NAME.eq(regionName, StringUtils.hasText(regionName)))
.where(EBIKE_SYS_ROPERATESET.IS_OPERATE.eq(inOperation, Objects::nonNull));
.where(EBIKE_OPERATION_REGION.IN_OPERATION.eq(inOperation, Objects::nonNull));
return this.mapper.paginateAs(pageParam.getPage(), queryWrapper, EbikeOperationRegionPageDto.class);
}

View File

@ -49,7 +49,6 @@ import static com.cdzy.ebikeoperate.model.pojo.table.EbikeSiteImagesTableDef.EBI
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeSiteRegionTableDef.EBIKE_SITE_REGION;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeSiteTypeTableDef.EBIKE_SITE_TYPE;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeStaffRegionTableDef.EBIKE_STAFF_REGION;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeSysRoperatesetTableDef.EBIKE_SYS_ROPERATESET;
/**
* 站点配置表 服务层实现
@ -148,10 +147,9 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMappe
.leftJoin(EBIKE_ADMINISTRATION_ZONE).on(EBIKE_ADMINISTRATION_ZONE.ID.eq(EBIKE_OPERATION_REGION.ZONE_ID))
.leftJoin(EBIKE_REGION_LEVEL).on(EBIKE_REGION_LEVEL.LEVEL_VALUE.eq(EBIKE_SITE_REGION.SITE_LEVEL))
.leftJoin(EBIKE_SITE_TYPE).on(EBIKE_SITE_TYPE.SITE_TYPE_VALUE.eq(EBIKE_SITE_REGION.SITE_LEVEL))
.leftJoin(EBIKE_SYS_ROPERATESET).on(EBIKE_SYS_ROPERATESET.OPERATION_REGION_ID.eq(EBIKE_OPERATION_REGION.OPERATION_REGION_ID))
.where(EBIKE_REGION_LEVEL.LEVEL_TYPE.eq(RegionLevelType.SITE))
.where(EBIKE_OPERATION_REGION.OPERATION_REGION_ID.eq(operationRegionId, Objects.nonNull(operationRegionId)))
.where(EBIKE_SYS_ROPERATESET.IS_OPERATE.eq(EbikeRegionInOperation.IN));
.where(EBIKE_OPERATION_REGION.IN_OPERATION.eq(EbikeRegionInOperation.IN));
return this.mapper.selectListWithRelationsByQueryAs(queryWrapper,ResEbikeSiteRegionPageDto.class);
}
@ -159,9 +157,8 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMappe
public List<Long> getInOperationIds(List<Long> operationRegionIds){
QueryWrapper queryWrapper = QueryWrapper.create()
.select(EBIKE_OPERATION_REGION.OPERATION_REGION_ID)
.leftJoin(EBIKE_SYS_ROPERATESET).on(EBIKE_SYS_ROPERATESET.OPERATION_REGION_ID.eq(EBIKE_OPERATION_REGION.OPERATION_REGION_ID))
.where(EBIKE_OPERATION_REGION.OPERATION_REGION_ID.in(operationRegionIds))
.where(EBIKE_SYS_ROPERATESET.IS_OPERATE.eq(EbikeRegionInOperation.IN));
.where(EBIKE_OPERATION_REGION.IN_OPERATION.eq(EbikeRegionInOperation.IN));
return operationRegionMapper.selectListWithRelationsByQueryAs(queryWrapper,Long.class);
}

View File

@ -6,6 +6,6 @@ package com.cdzy.orders.enums;
*/
public interface EbikeRegionInOperation {
String IN = "1";
String OUT = "0";
int IN = 1;
int OUT = 0;
}

View File

@ -38,7 +38,6 @@ import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import static com.cdzy.orders.enums.TimeDivisionCharging.TIME_SLOT;
@ -109,8 +108,7 @@ public class UserOrdersServiceImpl extends ServiceImpl<UserOrdersMapper, EbikeUs
throw new RuntimeException("获取运营区信息失败");
}
FeignEbikeRegionDto regionDto = operationResult.getData();
FeignEbikeSysRoperateset sysRoperateset = regionDto.getSysRoperateset();
if (sysRoperateset == null || Objects.equals(sysRoperateset.getIsOperate(), EbikeRegionInOperation.OUT)) {
if (regionDto.getInOperation() == EbikeRegionInOperation.OUT) {
throw new RuntimeException("当前运营区已停止运营");
}
String jsonString = JSONObject.toJSONString(redisUtil.get(ecuInfo.getEcuSn()));
@ -732,7 +730,7 @@ public class UserOrdersServiceImpl extends ServiceImpl<UserOrdersMapper, EbikeUs
throw new RuntimeException("获取运营区信息错误");
}
List<Long> data = jsonResult.getData();
if (data == null || data.isEmpty()) {
if (data == null || !data.isEmpty()) {
return JsonResult.success(List.of());
}
List<ResOperationInAllDto> list = area.stream().filter(dto -> {