From 53d390a79d77f28cf89761b44337d9d3927730d8 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期四, 08 八月 2024 14:02:34 +0800
Subject: [PATCH] 合并代码

---
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/GetSiteList.java        |   32 +++
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetSiteListDTO.java       |   42 ++++
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java               |   36 ++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RegionController.java                |   37 ++++
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Region.java                          |   46 +++++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java |   24 ++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java         |   38 ++++
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml                  |   47 +++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/RegionServiceImpl.java             |   15 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java    |   49 ++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/RegionMapper.java                        |   11 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java            |   15 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java |  130 ++++++++++++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/IRegionService.java                     |   11 +
 14 files changed, 522 insertions(+), 11 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetSiteListDTO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetSiteListDTO.java
new file mode 100644
index 0000000..641f0ff
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetSiteListDTO.java
@@ -0,0 +1,42 @@
+package com.ruoyi.chargingPile.api.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/8 9:29
+ */
+@Data
+@ApiModel
+public class GetSiteListDTO {
+	@ApiModelProperty(value = "站点id")
+	private Integer id;
+	@ApiModelProperty(value = "站点编号")
+	private String code;
+	@ApiModelProperty(value = "站点名称")
+	private String name;
+	@ApiModelProperty(value = "合作商名称")
+	private String partnerName;
+	@ApiModelProperty(value = "站点类型(0=其他,1=公共,2=个人,3=公交(专业),4=环卫(专用),5=物流(专用),6=出租车(专用))")
+	private Integer siteType;
+	@ApiModelProperty(value = "经营类型(1=直营,2=非直营)")
+	private Integer businessCategory;
+	@ApiModelProperty(value = "站点状态(1=正常使用,2=维修中,3=关闭下线)")
+	private Integer status;
+	@ApiModelProperty(value = "详细地址")
+	private String address;
+	@ApiModelProperty(value = "站点电话")
+	private String phone;
+	@ApiModelProperty(value = "服务电话")
+	private String servicePhone;
+	@ApiModelProperty(value = "车位数")
+	private Integer parkingSpace;
+	@ApiModelProperty(value = "建站时间")
+	private String establishmentTime;
+	@ApiModelProperty(value = "充电桩数量")
+	private Integer chargingPileNumber;
+	@ApiModelProperty(value = "排序")
+	private Integer sort;
+}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java
index feedd52..5bace65 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java
@@ -4,7 +4,9 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.web.domain.BasePojo;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.time.LocalDate;
@@ -20,166 +22,200 @@
 	 * 主键
 	 */
 	@TableId(value = "id", type = IdType.AUTO)
+	@ApiModelProperty(value = "站点id")
 	private Integer id;
 	/**
 	 * 合作商id
 	 */
 	@TableField("partner_id")
+	@ApiModelProperty(value = "合作商id", required = true)
 	private Integer partnerId;
 	/**
 	 * 站点编号
 	 */
 	@TableField("code")
+	@ApiModelProperty(value = "站点编号", required = true)
 	private String code;
 	/**
 	 * 站点名称
 	 */
 	@TableField("name")
+	@ApiModelProperty(value = "站点名称", required = true)
 	private String name;
 	/**
 	 * 站点类型(0=其他,1=公共,2=个人,3=公交(专业),4=环卫(专用),5=物流(专用),6=出租车(专用))
 	 */
 	@TableField("site_type")
+	@ApiModelProperty(value = "站点类型(0=其他,1=公共,2=个人,3=公交(专业),4=环卫(专用),5=物流(专用),6=出租车(专用))", required = true)
 	private Integer siteType;
 	/**
 	 * 经营类型(1=直营,2=非直营)
 	 */
 	@TableField("business_category")
+	@ApiModelProperty(value = "经营类型(1=直营,2=非直营)", required = true)
 	private Integer businessCategory;
 	/**
 	 * 站点状态(1=正常使用,2=维修中,3=关闭下线)
 	 */
 	@TableField("status")
+	@ApiModelProperty(value = "站点状态(1=正常使用,2=维修中,3=关闭下线)", required = true)
 	private Integer status;
 	/**
 	 * 建设场所(0=其他,1=居民区,2=公共机构,3=企事业单位,4=写字楼,5=工业园区,6=交通枢纽,7=大型文体设施,8=城市绿地,9=大型建筑配建停车场,10=路边停车位,11=城际高速服务区)
 	 */
 	@TableField("construction_site")
+	@ApiModelProperty(value = "建设场所(0=其他,1=居民区,2=公共机构,3=企事业单位,4=写字楼,5=工业园区,6=交通枢纽,7=大型文体设施,8=城市绿地,9=大型建筑配建停车场,10=路边停车位,11=城际高速服务区)", required = true)
 	private Integer constructionSite;
 	/**
 	 * 站点环境图
 	 */
 	@TableField("img_url")
+	@ApiModelProperty(value = "站点环境图", required = true)
 	private String imgUrl;
 	/**
 	 * 省名称
 	 */
 	@TableField("province")
+	@ApiModelProperty(value = "省名称", required = true)
 	private String province;
 	/**
 	 * 省区划代码
 	 */
 	@TableField("province_code")
+	@ApiModelProperty(value = "省区划代码", required = true)
 	private String provinceCode;
 	/**
 	 * 市名称
 	 */
 	@TableField("city")
+	@ApiModelProperty(value = "市名称", required = true)
 	private String city;
 	/**
 	 * 市区划代码
 	 */
 	@TableField("city_code")
+	@ApiModelProperty(value = "市区划代码", required = true)
 	private String cityCode;
 	/**
 	 * 区县名称
 	 */
 	@TableField("districts")
+	@ApiModelProperty(value = "区县名称", required = true)
 	private String districts;
 	/**
 	 * 区县区划代码
 	 */
 	@TableField("districts_code")
+	@ApiModelProperty(value = "区县区划代码", required = true)
 	private String districtsCode;
 	/**
 	 * 经度
 	 */
 	@TableField("lon")
+	@ApiModelProperty(value = "经度", required = true)
 	private String lon;
 	/**
 	 * 纬度
 	 */
 	@TableField("lat")
+	@ApiModelProperty(value = "纬度", required = true)
 	private String lat;
 	/**
 	 * 详细地址
 	 */
 	@TableField("address")
+	@ApiModelProperty(value = "详细地址", required = true)
 	private String address;
 	/**
 	 * 国家代码
 	 */
 	@TableField("country_code")
+	@ApiModelProperty(value = "国家代码")
 	private String countryCode;
 	/**
 	 * 站点电话
 	 */
 	@TableField("phone")
+	@ApiModelProperty(value = "站点电话", required = true)
 	private String phone;
 	/**
 	 * 服务电话
 	 */
 	@TableField("service_phone")
+	@ApiModelProperty(value = "服务电话", required = true)
 	private String servicePhone;
 	/**
 	 * 站点引导
 	 */
 	@TableField("guide")
+	@ApiModelProperty(value = "站点引导")
 	private String guide;
 	/**
 	 * 开始服务时间
 	 */
 	@TableField("start_service_time")
+	@ApiModelProperty(value = "开始服务时间")
 	private String startServiceTime;
 	/**
 	 * 结束服务时间
 	 */
 	@TableField("end_service_time")
+	@ApiModelProperty(value = "结束服务时间")
 	private String endServiceTime;
 	/**
 	 * 站内提供服务
 	 */
 	@TableField("service_description")
+	@ApiModelProperty(value = "站内提供服务")
 	private String serviceDescription;
 	/**
 	 * 车型描述
 	 */
 	@TableField("vehicle_description")
+	@ApiModelProperty(value = "车型描述")
 	private String vehicleDescription;
 	/**
 	 * 车位数
 	 */
 	@TableField("parking_space")
+	@ApiModelProperty(value = "车位数", required = true)
 	private Integer parkingSpace;
 	/**
 	 * 充电费率描述
 	 */
 	@TableField("rate_description")
+	@ApiModelProperty(value = "充电费率描述")
 	private String rateDescription;
 	/**
 	 * 超时占位费说明
 	 */
 	@TableField("space_charge_explain")
+	@ApiModelProperty(value = "超时占位费说明")
 	private String spaceChargeExplain;
 	/**
 	 * 计费策略id
 	 */
 	@TableField("accounting_strategy_id")
+	@ApiModelProperty(value = "计费策略id")
 	private Integer accountingStrategyId;
 	/**
 	 * 建站时间
 	 */
 	@TableField("establishment_time")
+	@ApiModelProperty(value = "建站时间", notes = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private LocalDate establishmentTime;
 	/**
 	 * 排序
 	 */
 	@TableField("sort")
+	@ApiModelProperty(value = "排序", required = true)
 	private Integer sort;
 	/**
 	 * 备注
 	 */
 	@TableField("remark")
+	@ApiModelProperty(value = "备注")
 	private String remark;
 	/**
 	 * 评分
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/GetSiteList.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/GetSiteList.java
new file mode 100644
index 0000000..2da8f1f
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/GetSiteList.java
@@ -0,0 +1,32 @@
+package com.ruoyi.chargingPile.api.query;
+
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Value;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/8 9:24
+ */
+@Data
+@ApiModel
+public class GetSiteList extends BasePage {
+	@ApiModelProperty(value = "站点名称")
+	private String name;
+	@ApiModelProperty(value = "合作商名称")
+	private String partnerName;
+	@ApiModelProperty(value = "站点类型(0=其他,1=公共,2=个人,3=公交(专业),4=环卫(专用),5=物流(专用),6=出租车(专用))")
+	private Integer siteType;
+	@ApiModelProperty(value = "经营类型(1=直营,2=非直营)")
+	private Integer businessCategory;
+	@ApiModelProperty(value = "站点状态(1=正常使用,2=维修中,3=关闭下线)")
+	private Integer status;
+	@ApiModelProperty(value = "站点省代码")
+	private String provinceCode;
+	@ApiModelProperty(value = "站点市代码")
+	private String cityCode;
+	@ApiModelProperty(value = "站点区代码")
+	private String districtsCode;
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Region.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Region.java
new file mode 100644
index 0000000..6502f26
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Region.java
@@ -0,0 +1,46 @@
+package com.ruoyi.other.api.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/8 11:55
+ */
+@Data
+@TableName("t_region")
+public class Region {
+	/**
+	 * 主键
+	 */
+	@TableId(value = "id", type = IdType.AUTO)
+	private Integer id;
+	/**
+	 * 城市名称
+	 */
+	@TableField("name")
+	private String name;
+	/**
+	 * 行政区划代码
+	 */
+	@TableField("code")
+	private String code;
+	/**
+	 * 城市code
+	 */
+	@TableField("citycode")
+	private String citycode;
+	/**
+	 * 父级ID
+	 */
+	@TableField("parent_id")
+	private Integer parentId;
+	/**
+	 * 英文名称
+	 */
+	@TableField("english")
+	private String english;
+}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java
index e94628d..ba93e47 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java
@@ -1,5 +1,7 @@
 package com.ruoyi.chargingPile.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.ruoyi.chargingPile.api.dto.PartnerListDTO;
 import com.ruoyi.chargingPile.api.model.Partner;
 import com.ruoyi.chargingPile.api.query.GetPartnerList;
@@ -13,6 +15,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * @author zhibing.pu
@@ -30,7 +33,7 @@
 	
 	@ResponseBody
 	@GetMapping("/getPartnerList")
-	@ApiOperation(value = "获取合作商列表", tags = {"管理后台-合作商列表"})
+	@ApiOperation(value = "获取合作商列表", tags = {"管理后台-合作商管理"})
 	public AjaxResult<PageInfo<PartnerListDTO>> getPartnerList(@RequestBody GetPartnerList partnerList){
 		PageInfo<PartnerListDTO> list = partnerService.getPartnerList(partnerList);
 		return AjaxResult.success(list);
@@ -39,7 +42,7 @@
 	
 	@ResponseBody
 	@PostMapping("/addPartner")
-	@ApiOperation(value = "添加合作商", tags = {"管理后台-合作商列表"})
+	@ApiOperation(value = "添加合作商", tags = {"管理后台-合作商管理"})
 	public AjaxResult addPartner(@RequestBody Partner partner){
 		return partnerService.addPartner(partner);
 	}
@@ -48,7 +51,7 @@
 	
 	@ResponseBody
 	@GetMapping("/getPartner/{id}")
-	@ApiOperation(value = "获取合作商详情", tags = {"管理后台-合作商列表"})
+	@ApiOperation(value = "获取合作商详情", tags = {"管理后台-合作商管理"})
 	@ApiImplicitParams({
 			@ApiImplicitParam(value = "合作商id", name = "id", dataTypeClass = Integer.class, required = true)
 	})
@@ -61,7 +64,7 @@
 	
 	@ResponseBody
 	@PostMapping("/editPartner")
-	@ApiOperation(value = "编辑合作商", tags = {"管理后台-合作商列表"})
+	@ApiOperation(value = "编辑合作商", tags = {"管理后台-合作商管理"})
 	public AjaxResult editPartner(@RequestBody Partner partner){
 		return partnerService.editPartner(partner);
 	}
@@ -70,7 +73,7 @@
 	
 	@ResponseBody
 	@DeleteMapping("/delPartner/{id}")
-	@ApiOperation(value = "删除合作商", tags = {"管理后台-合作商列表"})
+	@ApiOperation(value = "删除合作商", tags = {"管理后台-合作商管理"})
 	@ApiImplicitParams({
 			@ApiImplicitParam(value = "合作商id", name = "id", dataTypeClass = Integer.class, required = true)
 	})
@@ -81,8 +84,17 @@
 	
 	@ResponseBody
 	@PostMapping("/resetPassword")
-	@ApiOperation(value = "合作商重置密码", tags = {"管理后台-合作商列表"})
+	@ApiOperation(value = "合作商重置密码", tags = {"管理后台-合作商管理"})
 	public AjaxResult resetPassword(@RequestBody ResetPassword resetPassword){
 		return partnerService.resetPassword(resetPassword);
 	}
+	
+	
+	@ResponseBody
+	@PostMapping("/getPartner")
+	@ApiOperation(value = "获取所有合作商", tags = {"管理后台-站点管理"})
+	public AjaxResult<List<Partner>> getPartner(){
+		List<Partner> list = partnerService.list(new LambdaQueryWrapper<Partner>().eq(Partner::getDelFlag, 0));
+		return AjaxResult.success(list);
+	}
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
index 1bf5768..5d7f589 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
@@ -1,9 +1,15 @@
 package com.ruoyi.chargingPile.controller;
 
+import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
+import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.chargingPile.api.query.GetSiteList;
 import com.ruoyi.chargingPile.service.ISiteService;
 import com.ruoyi.common.core.web.domain.AjaxResult;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.core.web.page.PageInfo;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 
@@ -19,8 +25,41 @@
 	private ISiteService siteService;
 	
 	
-	
-	public AjaxResult<> getSiteList(){
-	
+	@ResponseBody
+	@GetMapping("/getSiteList")
+	@ApiOperation(value = "获取站点列表", tags = {"管理后台-站点管理"})
+	public AjaxResult<PageInfo<GetSiteListDTO>> getSiteList(@RequestBody GetSiteList siteList){
+		PageInfo<GetSiteListDTO> list = siteService.getSiteList(siteList);
+		return AjaxResult.success(list);
 	}
+	
+	
+	@ResponseBody
+	@PostMapping("/getSiteList")
+	@ApiOperation(value = "添加站点", tags = {"管理后台-站点管理"})
+	public AjaxResult addSite(@RequestBody Site site){
+		return siteService.addSite(site);
+	}
+	
+	@ResponseBody
+	@PostMapping("/editSite")
+	@ApiOperation(value = "编辑站点", tags = {"管理后台-站点管理"})
+	public AjaxResult editSite(@RequestBody Site site){
+		return siteService.editSite(site);
+	}
+	
+	@ResponseBody
+	@DeleteMapping("/delSite/{id}")
+	@ApiOperation(value = "编辑站点", tags = {"管理后台-站点管理"})
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "站点id", name = "id", dataTypeClass = Integer.class, required = true)
+	})
+	public AjaxResult delSite(@PathVariable Integer id){
+		return siteService.delSite(id);
+	}
+	
+	
+	
+	
+	
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java
index 1a201ee..42263de 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java
@@ -1,11 +1,26 @@
 package com.ruoyi.chargingPile.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
 import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.chargingPile.api.query.GetSiteList;
+import com.ruoyi.common.core.web.page.PageInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @author zhibing.pu
  * @Date 2024/8/7 19:49
  */
 public interface SiteMapper extends BaseMapper<Site> {
+	
+	
+	/**
+	 * 获取站点列表
+	 * @param pageInfo
+	 * @param siteList
+	 * @return
+	 */
+	List<GetSiteListDTO> getSiteList(PageInfo<GetSiteListDTO> pageInfo, @Param("item") GetSiteList siteList);
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
index f76d9f8..5e136d6 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
@@ -1,11 +1,49 @@
 package com.ruoyi.chargingPile.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
 import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.chargingPile.api.query.GetSiteList;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageInfo;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * @author zhibing.pu
  * @Date 2024/8/7 19:54
  */
 public interface ISiteService extends IService<Site> {
+	
+	
+	/**
+	 * 获取站点管理列表
+	 * @param siteList
+	 * @return
+	 */
+	PageInfo<GetSiteListDTO> getSiteList(GetSiteList siteList);
+	
+	
+	/**
+	 * 添加站点信息
+	 * @param site
+	 * @return
+	 */
+	AjaxResult addSite(Site site);
+	
+	
+	/**
+	 * 编辑站点
+	 * @param site
+	 * @return
+	 */
+	AjaxResult editSite(Site site);
+	
+	
+	/**
+	 * 删除站点
+	 * @param id
+	 * @return
+	 */
+	AjaxResult delSite(Integer id);
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
index b22f788..8ed6be2 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -1,10 +1,18 @@
 package com.ruoyi.chargingPile.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
 import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.chargingPile.api.query.GetSiteList;
 import com.ruoyi.chargingPile.mapper.SiteMapper;
 import com.ruoyi.chargingPile.service.ISiteService;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageInfo;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * @author zhibing.pu
@@ -12,4 +20,126 @@
  */
 @Service
 public class SiteServiceImpl extends ServiceImpl<SiteMapper, Site> implements ISiteService {
+	
+	
+	/**
+	 * 获取站点管理列表数据
+	 * @param siteList
+	 * @return
+	 */
+	@Override
+	public PageInfo<GetSiteListDTO> getSiteList(GetSiteList siteList) {
+		PageInfo<GetSiteListDTO> pageInfo = new PageInfo<>(siteList.getPageCurr(), siteList.getPageSize());
+		List<GetSiteListDTO> list = this.baseMapper.getSiteList(pageInfo, siteList);
+		return pageInfo.setRecords(list);
+	}
+	
+	/**
+	 * 添加站点信息
+	 * @param site
+	 * @return
+	 */
+	@Override
+	public AjaxResult addSite(Site site) {
+		AjaxResult ajaxResult = addSiteVerify(site);
+		if(ajaxResult.isError()){
+			return ajaxResult;
+		}
+		Site one = this.getOne(new LambdaQueryWrapper<Site>().eq(Site::getCode, site.getCode()).eq(Site::getDelFlag, 0));
+		if(null != one){
+			return AjaxResult.error("站点编号重复");
+		}
+		site.setMark(0);
+		this.save(site);
+		return AjaxResult.success();
+	}
+	
+	
+	/**
+	 * 编辑站点
+	 * @param site
+	 * @return
+	 */
+	@Override
+	public AjaxResult editSite(Site site) {
+		AjaxResult ajaxResult = addSiteVerify(site);
+		if(ajaxResult.isError()){
+			return ajaxResult;
+		}
+		Site one = this.getOne(new LambdaQueryWrapper<Site>().eq(Site::getCode, site.getCode()).eq(Site::getDelFlag, 0));
+		if(null != one && !one.getCode().equals(site.getCode())){
+			return AjaxResult.error("站点编号重复");
+		}
+		this.updateById(site);
+		return AjaxResult.success();
+	}
+	
+	/**
+	 * 校验必填项
+	 * @param site
+	 * @return
+	 */
+	AjaxResult addSiteVerify(Site site){
+		if(null == site.getPartnerId()){
+			return AjaxResult.error("合作商不能为空");
+		}
+		if(StringUtils.isEmpty(site.getCode())){
+			return AjaxResult.error("站点编号不能为空");
+		}
+		if(StringUtils.isEmpty(site.getName())){
+			return AjaxResult.error("站点名称不能为空");
+		}
+		if(null == site.getSiteType()){
+			return AjaxResult.error("站点类型不能为空");
+		}
+		if(null == site.getBusinessCategory()){
+			return AjaxResult.error("经营类别不能为空");
+		}
+		if(null == site.getStatus()){
+			return AjaxResult.error("站点状态不能为空");
+		}
+		if(null == site.getConstructionSite()){
+			return AjaxResult.error("建设场所不能为空");
+		}
+		if(StringUtils.isEmpty(site.getProvince()) || StringUtils.isEmpty(site.getProvinceCode()) ||
+				StringUtils.isEmpty(site.getCity()) || StringUtils.isEmpty(site.getCityCode()) ||
+				StringUtils.isEmpty(site.getDistricts()) || StringUtils.isEmpty(site.getDistrictsCode())){
+			return AjaxResult.error("所在区域不能为空");
+		}
+		if(StringUtils.isEmpty(site.getAddress())){
+			return AjaxResult.error("详细地址不能为空");
+		}
+		if(StringUtils.isEmpty(site.getLon()) || StringUtils.isEmpty(site.getLat())){
+			return AjaxResult.error("地图位置不能为空");
+		}
+		if(StringUtils.isEmpty(site.getPhone())){
+			return AjaxResult.error("站点电话不能为空");
+		}
+		if(StringUtils.isEmpty(site.getServicePhone())){
+			return AjaxResult.error("服务电话不能为空");
+		}
+		if(null == site.getParkingSpace()){
+			return AjaxResult.error("车位数量不能为空");
+		}
+		if(null == site.getSort()){
+			return AjaxResult.error("排序不能为空");
+		}
+		return AjaxResult.success();
+	}
+	
+	/**
+	 * 删除站点
+	 * @param id 站点id
+	 * @return
+	 */
+	@Override
+	public AjaxResult delSite(Integer id) {
+		//查询是否有关联数据
+		//充电桩
+		// todo 待完善
+		Site site = this.getById(id);
+		site.setDelFlag(true);
+		this.updateById(site);
+		return AjaxResult.success();
+	}
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
index 1eac92c..e9cf906 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
@@ -42,4 +42,51 @@
 		<result column="del_flag" property="delFlag" />
 	</resultMap>
 	
+	
+	<select id="getSiteList" resultType="com.ruoyi.chargingPile.api.dto.GetSiteListDTO">
+		select
+		a.id,
+		a.code,
+		a.name,
+		b.name as partnerName,
+		a.site_type as siteType,
+		a.business_category as businessCategory,
+		a.status,
+		CONCAT(a.province, a.city, a.districts, a.address) as address,
+		a.phone,
+		a.service_phone as servicePhone,
+		a.parking_space as parkingSpace,
+		DATE_FORMAT('%Y-%m-%d %H:%i:%s', a.establishment_time) as establishmentTime,
+		c.num as chargingPileNumber,
+		a.sort
+		from t_site a
+		left join t_partner b on (a.partner_id = b.id)
+		left join (select site_id, count(1) as num from t_charging_pile where del_flag = 0 group by site_id) c on (a.id = c.site_id)
+		WHERE a.del_flag = 0
+		<if test="null != item.name and '' != item.name">
+			and a.name like CONCAT('%', #{item.name}, '%')
+		</if>
+		<if test="null != item.partnerName and '' != item.partnerName">
+			and b.name like CONCAT('%', #{item.partnerName}, '%')
+		</if>
+		<if test="null != item.siteType">
+			and a.site_type = #{item.siteType}
+		</if>
+		<if test="null != item.businessCategory">
+			and a.business_category = #{item.businessCategory}
+		</if>
+		<if test="null != item.status">
+			and a.status = #{item.status}
+		</if>
+		<if test="null != item.provinceCode and '' != item.provinceCode">
+			and a.province_code = #{item.provinceCode}
+		</if>
+		<if test="null != item.cityCode and '' != item.cityCode">
+			and a.city_code = #{item.cityCode}
+		</if>
+		<if test="null != item.districtsCode and '' != item.districtsCode">
+			and a.districts_code = #{item.districtsCode}
+		</if>
+		order by a.sort desc, a.create_time desc limit #{item.pageCurr}, #{item.pageSize}
+	</select>
 </mapper>
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RegionController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RegionController.java
new file mode 100644
index 0000000..622c6b9
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RegionController.java
@@ -0,0 +1,37 @@
+package com.ruoyi.other.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.other.api.domain.Region;
+import com.ruoyi.other.service.IRegionService;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/8 12:00
+ */
+@RestController
+@RequestMapping("/region")
+public class RegionController {
+	
+	@Resource
+	private IRegionService regionService;
+	
+	
+	@ResponseBody
+	@GetMapping("/getRegion/{pid}")
+	@ApiOperation(value = "获取省市区数据", tags = {"管理后台-站点管理"})
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "父级id,没有传0", name = "pid", required = true)
+	})
+	public AjaxResult<List<Region>> getRegion(@PathVariable Integer pid){
+		List<Region> list = regionService.list(new LambdaQueryWrapper<Region>().eq(Region::getParentId, pid));
+		return AjaxResult.success(list);
+	}
+}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/RegionMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/RegionMapper.java
new file mode 100644
index 0000000..ae03212
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/RegionMapper.java
@@ -0,0 +1,11 @@
+package com.ruoyi.other.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.other.api.domain.Region;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/8 11:59
+ */
+public interface RegionMapper extends BaseMapper<Region> {
+}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/IRegionService.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/IRegionService.java
new file mode 100644
index 0000000..a81edb8
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/IRegionService.java
@@ -0,0 +1,11 @@
+package com.ruoyi.other.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.other.api.domain.Region;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/8 11:59
+ */
+public interface IRegionService extends IService<Region> {
+}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/RegionServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/RegionServiceImpl.java
new file mode 100644
index 0000000..8fd850a
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/RegionServiceImpl.java
@@ -0,0 +1,15 @@
+package com.ruoyi.other.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.other.api.domain.Region;
+import com.ruoyi.other.mapper.RegionMapper;
+import com.ruoyi.other.service.IRegionService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/8 11:59
+ */
+@Service
+public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> implements IRegionService {
+}

--
Gitblit v1.7.1