站点功能

This commit is contained in:
attiya 2025-10-29 11:38:18 +08:00
parent 4f64538c9a
commit 81d67d2989
6 changed files with 149 additions and 30 deletions

View File

@ -1,21 +1,30 @@
package com.cdzy.operations.controller; package com.cdzy.operations.controller;
import com.cdzy.common.model.request.PageParam;
import com.cdzy.common.model.response.JsonResult;
import com.cdzy.operations.model.entity.EbikeSite; import com.cdzy.operations.model.entity.EbikeSite;
import com.cdzy.operations.model.vo.EbikeSiteVo;
import com.cdzy.operations.service.EbikeSiteService; import com.cdzy.operations.service.EbikeSiteService;
import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.util.StringUtil;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import static com.cdzy.operations.model.entity.table.EbikeSiteTableDef.EBIKE_SITE;
/** /**
* 站点控制层 * 站点控制层
* *
* @author attiya * @author attiya
* @since 2025-10-28 * @since 2025-10-28
*/ */
@RestController @RestController
@RequestMapping("/ebikeSite") @RequestMapping("/ebikeSite")
@Validated
public class EbikeSiteController { public class EbikeSiteController {
@Resource @Resource
@ -24,34 +33,37 @@ public class EbikeSiteController {
/** /**
* 添加 * 添加
* *
* @param ebikeSite * @param ebikeSite 站点信息
* @return {@code true} 添加成功{@code false} 添加失败 * @return {@code true} 添加成功{@code false} 添加失败
*/ */
@PostMapping("save") @PostMapping("save")
public boolean save(@RequestBody EbikeSite ebikeSite) { public JsonResult<?> save(@RequestBody EbikeSiteVo ebikeSite) {
return ebikeSiteService.save(ebikeSite); ebikeSiteService.saveSite(ebikeSite);
return JsonResult.success();
} }
/** /**
* 根据主键删除 * 根据主键删除
* *
* @param id 主键 * @param siteId 主键
* @return {@code true} 删除成功{@code false} 删除失败 * @return {@code true} 删除成功{@code false} 删除失败
*/ */
@DeleteMapping("remove/{id}") @GetMapping("remove")
public boolean remove(@PathVariable Long id) { public JsonResult<?> remove(@RequestParam Long siteId) {
return ebikeSiteService.removeById(id); ebikeSiteService.removeById(siteId);
return JsonResult.success();
} }
/** /**
* 根据主键更新 * 根据主键更新
* *
* @param ebikeSite * @param ebikeSite 站点信息
* @return {@code true} 更新成功{@code false} 更新失败 * @return {@code true} 更新成功{@code false} 更新失败
*/ */
@PutMapping("update") @PutMapping("update")
public boolean update(@RequestBody EbikeSite ebikeSite) { public JsonResult<?> update(@RequestBody EbikeSiteVo ebikeSite) {
return ebikeSiteService.updateById(ebikeSite); ebikeSiteService.updateSite(ebikeSite);
return JsonResult.success();
} }
/** /**
@ -60,19 +72,21 @@ public class EbikeSiteController {
* @return 所有数据 * @return 所有数据
*/ */
@GetMapping("list") @GetMapping("list")
public List<EbikeSite> list() { public JsonResult<?> list() {
return ebikeSiteService.list(); List<EbikeSite> list = ebikeSiteService.list();
return JsonResult.success(list);
} }
/** /**
* 根据主键获取详细信息 * 根据主键获取详细信息
* *
* @param id 主键 * @param siteId 主键
* @return 详情 * @return 详情
*/ */
@GetMapping("getInfo/{id}") @GetMapping("getInfo")
public EbikeSite getInfo(@PathVariable Long id) { public JsonResult<?> getInfo(@RequestParam Long siteId) {
return ebikeSiteService.getById(id); EbikeSite ebikeSite = ebikeSiteService.getById(siteId);
return JsonResult.success(ebikeSite);
} }
/** /**
@ -82,8 +96,11 @@ public class EbikeSiteController {
* @return 分页对象 * @return 分页对象
*/ */
@GetMapping("page") @GetMapping("page")
public Page<EbikeSite> page(Page<EbikeSite> page) { public JsonResult<?> page(PageParam page,String siteName) {
return ebikeSiteService.page(page); QueryWrapper queryWrapper = QueryWrapper.create()
.where(EBIKE_SITE.SITE_NAME.like(siteName, StringUtil.hasText(siteName)));
Page<EbikeSite> sitePage = ebikeSiteService.page(page.getPage(),queryWrapper);
return JsonResult.success(sitePage);
} }
} }

View File

@ -48,7 +48,7 @@ public class EbikeBikeInfo implements Serializable {
/** /**
* 运营区ID * 运营区ID
*/ */
private Long areaId; private Long regionId;
/** /**
* 车辆编号与车辆二维码编号相同 * 车辆编号与车辆二维码编号相同

View File

@ -1,17 +1,17 @@
package com.cdzy.operations.model.entity; package com.cdzy.operations.model.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id; import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table; import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.sql.Timestamp;
import org.postgresql.geometric.PGpolygon;
import java.io.Serial;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.postgresql.geometric.PGpolygon;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
/** /**
* 站点基础信息实体类 * 站点基础信息实体类
@ -35,6 +35,11 @@ public class EbikeSite implements Serializable {
@Id @Id
private Long siteId; private Long siteId;
/**
* 站点名称
*/
private String siteName;
/** /**
* 运营商ID * 运营商ID
*/ */
@ -55,11 +60,13 @@ public class EbikeSite implements Serializable {
*/ */
private Integer siteType; private Integer siteType;
private Timestamp createAt; @Column(onInsertValue = "now()")
private LocalDateTime createAt;
private Long createdBy; private Long createdBy;
private Timestamp updatedAt; @Column(onUpdateValue = "now()")
private LocalDateTime updatedAt;
private Long updatedBy; private Long updatedBy;

View File

@ -0,0 +1,60 @@
package com.cdzy.operations.model.vo;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.postgresql.geometric.PGpolygon;
import java.io.Serializable;
/**
* 站点基础信息实体类
*
* @author attiya
* @since 2025-10-28
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class EbikeSiteVo implements Serializable {
/**
* 站点ID
*/
private Long siteId;
/**
* 运营商ID
*/
@NotNull(message = "运营商ID不能为空")
private Long operatorId;
/**
* 运营商ID
*/
@NotNull(message = "站点名称不能为空")
private String siteName;
/**
* 运营区ID
*/
@NotNull(message = "运营区ID不能为空")
private Long regionId;
/**
* 站点区域
*/
@NotNull(message = "站点区域不能为空")
private PGpolygon sitePolygon;
/**
* 站点类型1-普通站点停车) 2-禁停区 3-仓库区
*/
@NotNull(message = "站点类型不能为空")
private Integer siteType;
}

View File

@ -1,5 +1,6 @@
package com.cdzy.operations.service; package com.cdzy.operations.service;
import com.cdzy.operations.model.vo.EbikeSiteVo;
import com.mybatisflex.core.service.IService; import com.mybatisflex.core.service.IService;
import com.cdzy.operations.model.entity.EbikeSite; import com.cdzy.operations.model.entity.EbikeSite;
@ -11,4 +12,7 @@ import com.cdzy.operations.model.entity.EbikeSite;
*/ */
public interface EbikeSiteService extends IService<EbikeSite> { public interface EbikeSiteService extends IService<EbikeSite> {
void saveSite(EbikeSiteVo ebikeSite);
void updateSite(EbikeSiteVo ebikeSite);
} }

View File

@ -1,5 +1,8 @@
package com.cdzy.operations.service.impl; package com.cdzy.operations.service.impl;
import cn.dev33.satoken.stp.StpUtil;
import com.cdzy.common.ex.EbikeException;
import com.cdzy.operations.model.vo.EbikeSiteVo;
import com.mybatisflex.spring.service.impl.ServiceImpl; import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.cdzy.operations.model.entity.EbikeSite; import com.cdzy.operations.model.entity.EbikeSite;
import com.cdzy.operations.mapper.EbikeSiteMapper; import com.cdzy.operations.mapper.EbikeSiteMapper;
@ -7,12 +10,40 @@ import com.cdzy.operations.service.EbikeSiteService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 服务层实现 * 服务层实现
* *
* @author attiya * @author attiya
* @since 2025-10-28 * @since 2025-10-28
*/ */
@Service @Service
public class EbikeSiteServiceImpl extends ServiceImpl<EbikeSiteMapper, EbikeSite> implements EbikeSiteService{ public class EbikeSiteServiceImpl extends ServiceImpl<EbikeSiteMapper, EbikeSite> implements EbikeSiteService {
@Override
public void saveSite(EbikeSiteVo ebikeSite) {
EbikeSite site = EbikeSite.builder()
.siteName(ebikeSite.getSiteName())
.sitePolygon(ebikeSite.getSitePolygon())
.operatorId(ebikeSite.getOperatorId())
.regionId(ebikeSite.getRegionId())
.siteType(ebikeSite.getSiteType())
.createdBy(StpUtil.getLoginIdAsLong())
.build();
this.mapper.insert(site);
}
@Override
public void updateSite(EbikeSiteVo ebikeSite) {
Long siteId = ebikeSite.getSiteId();
EbikeSite site = this.mapper.selectOneById(siteId);
if (site == null) {
throw new EbikeException("站点不存在");
}
site.setSiteName(ebikeSite.getSiteName());
site.setSitePolygon(ebikeSite.getSitePolygon());
site.setOperatorId(ebikeSite.getOperatorId());
site.setRegionId(ebikeSite.getRegionId());
site.setSiteType(ebikeSite.getSiteType());
site.setUpdatedBy(StpUtil.getLoginIdAsLong());
this.mapper.update(site);
}
} }