zhibing.pu
2024-08-08 53d390a79d77f28cf89761b44337d9d3927730d8
合并代码
7个文件已修改
7个文件已添加
533 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetSiteListDTO.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/GetSiteList.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Region.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RegionController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/RegionMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/IRegionService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/RegionServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetSiteListDTO.java
New file
@@ -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;
}
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;
    /**
     * 评分
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/GetSiteList.java
New file
@@ -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;
}
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Region.java
New file
@@ -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;
}
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);
    }
}
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);
    }
}
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);
}
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);
}
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();
    }
}
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>
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RegionController.java
New file
@@ -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);
    }
}
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/RegionMapper.java
New file
@@ -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> {
}
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/IRegionService.java
New file
@@ -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> {
}
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/RegionServiceImpl.java
New file
@@ -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 {
}