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 { }