server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/AreasCloudController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/AreasMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/AreasDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Areas.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/AreasService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/AreasServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/AreasCloudController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,115 @@ package com.doumee.cloud.admin; import com.doumee.api.BaseController; import com.doumee.core.annotation.excel.ExcelExporter; import com.doumee.core.annotation.pr.PreventRepeat; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.dao.business.dto.AreasDto; import com.doumee.dao.business.model.Areas; import com.doumee.service.business.AreasService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; /** * @author æ±è¹è¹ * @date 2023/02/15 08:55 */ @Api(tags = "çå¸åºä¿¡æ¯è¡¨") @RestController @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/areas") public class AreasCloudController extends BaseController { @Autowired private AreasService areasService; @PreventRepeat @ApiOperation("æ°å»º") @PostMapping("/create") @RequiresPermissions("business:areas:create") public ApiResponse create(@RequestBody Areas areas,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { areas.setLoginUserInfo(getLoginUser(token)); return ApiResponse.success(areasService.create(areas)); } @ApiOperation("æ ¹æ®IDå é¤") @GetMapping("/delete/{id}") @RequiresPermissions("business:areas:delete") public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { areasService.deleteById(id); return ApiResponse.success(null); } @ApiOperation("æ¹éå é¤") @GetMapping("/delete/batch") @RequiresPermissions("business:areas:delete") public ApiResponse deleteByIdInBatch(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { String [] idArray = ids.split(","); List<Integer> idList = new ArrayList<>(); for (String id : idArray) { idList.add(Integer.valueOf(id)); } areasService.deleteByIdInBatch(idList); return ApiResponse.success(null); } @ApiOperation("æ ¹æ®IDä¿®æ¹") @PostMapping("/updateById") @RequiresPermissions("business:areas:update") public ApiResponse updateById(@RequestBody Areas areas,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { areas.setLoginUserInfo(getLoginUser(token)); areasService.updateById(areas); return ApiResponse.success(null); } @ApiOperation("å页æ¥è¯¢") @PostMapping("/page") // @RequiresPermissions("business:areas:query") public ApiResponse<PageData<Areas>> findPage (@RequestBody PageWrap<Areas> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(areasService.findPage(pageWrap)); } @ApiOperation("å ¨é¨æ å½¢æ¥è¯¢") @PostMapping("/treeList") // @RequiresPermissions("business:areas:query") public ApiResponse<List<Areas>> treeList (@RequestBody AreasDto pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { Areas a = new Areas(); BeanUtils.copyProperties(pageWrap,a); return ApiResponse.success(areasService.findList(a)); } @ApiOperation("æ ¹æ®ç¶èç¹æ¥ä¸") @PostMapping("/listByParentId") // @RequiresPermissions("business:areas:query") public ApiResponse<List<Areas>> listByParentId (@RequestBody AreasDto pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { Areas a = new Areas(); BeanUtils.copyProperties(pageWrap,a); // PageWrap<Areas> wrap = new PageWrap<>(); // wrap.setPage(Constants.ONE); // wrap.setCapacity(9999); // wrap.setModel(a); return ApiResponse.success(areasService.listByParentId(a)); } @ApiOperation("导åºExcel") @PostMapping("/exportExcel") @RequiresPermissions("business:areas:exportExcel") public void exportExcel (@RequestBody PageWrap<Areas> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { ExcelExporter.build(Areas.class).export(areasService.findPage(pageWrap).getRecords(), "çå¸åºä¿¡æ¯è¡¨", response); } @ApiOperation("æ ¹æ®IDæ¥è¯¢") @GetMapping("/{id}") @RequiresPermissions("business:areas:query") public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(areasService.findById(id)); } } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/AreasMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ package com.doumee.dao.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.Areas; /** * @author æ±è¹è¹ * @date 2023/02/15 08:55 */ public interface AreasMapper extends BaseMapper<Areas> { } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/AreasDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package com.doumee.dao.business.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; /** * @author Eva.Caesar Liu * @date 2023/02/14 11:14 */ @Data @ApiModel("çå¸åºæ¥è¯¢åæ°") public class AreasDto implements Serializable { @ApiModelProperty(value = "åç§°" ) private String name; @ApiModelProperty(value = "ç±»å 0ç 1å¸ 2åºå¿", example = "1") private Integer type; @ApiModelProperty(value = "ç¶èç¹ç¼ç ", example = "1") private Integer parentId; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Areas.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,109 @@ package com.doumee.dao.business.model; 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 com.doumee.core.annotation.excel.ExcelColumn; import com.doumee.core.model.LoginUserModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; import java.util.List; /** * çå¸åºä¿¡æ¯è¡¨ * @author æ±è¹è¹ * @date 2023/02/15 08:55 */ @Data @ApiModel("çå¸åºä¿¡æ¯è¡¨") @TableName("`areas`") public class Areas extends LoginUserModel implements Cloneable{ @ApiModelProperty(value = "主é®", example = "1") @ExcelColumn(name="主é®") @TableId(value = "id",type = IdType.AUTO) private Integer id; @ApiModelProperty(value = "å建人ç¼ç ", example = "1") @ExcelColumn(name="å建人ç¼ç ") private Integer creator; @ApiModelProperty(value = "å建æ¶é´") @ExcelColumn(name="å建æ¶é´") private Date createDate; @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") @ExcelColumn(name="æ´æ°äººç¼ç ") private Integer editor; @ApiModelProperty(value = "æ´æ°æ¶é´") @ExcelColumn(name="æ´æ°æ¶é´") private Date editDate; @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") @ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") private Integer isdeleted; @ApiModelProperty(value = "åç§°") @ExcelColumn(name="åç§°") private String name; @ApiModelProperty(value = "夿³¨") @ExcelColumn(name="夿³¨") private String info; @ApiModelProperty(value = "è¡æ¿åºä»£ç ") @ExcelColumn(name="è¡æ¿åºä»£ç ") private String code; @ApiModelProperty(value = "ç¶çº§ç¼ç ï¼å ³èareas表ï¼", example = "1") @ExcelColumn(name="ç¶çº§ç¼ç ï¼å ³èareas表ï¼") private Integer parentId; @ApiModelProperty(value = "ç±»å 0ç 1å¸ 2åºå¿", example = "1") @ExcelColumn(name="ç±»å 0ç 1å¸ 2åºå¿") private Integer type; @ApiModelProperty(value = "æåºç ", example = "1") @ExcelColumn(name="æåºç ") private Integer sortnum; @TableField(exist = false) private List<Areas> childList; @TableField(exist = false) private Integer provinceId; @TableField(exist = false) private String provinceName; @TableField(exist = false) private Integer cityId; @TableField(exist = false) private String cityName; //å®ç°Cloneableçcloneæ¹æ³ï¼å°cloneå®ä¹ä¸ºpublic public Areas clone() { try { return (Areas) super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return null; } @Override public String toString() { return "Areas{" + "id=" + id + ", creator=" + creator + ", createDate=" + createDate + ", editor=" + editor + ", editDate=" + editDate + ", isdeleted=" + isdeleted + ", name='" + name + '\'' + ", info='" + info + '\'' + ", code='" + code + '\'' + ", parentId=" + parentId + ", type=" + type + '}'; } } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/AreasService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,124 @@ package com.doumee.service.business; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.Areas; import java.util.List; /** * çå¸åºä¿¡æ¯è¡¨Serviceå®ä¹ * @author æ±è¹è¹ * @date 2023/02/15 08:55 */ public interface AreasService { /** * å建 * * @param areas å®ä½å¯¹è±¡ * @return Integer */ Integer create(Areas areas); /** * 主é®å é¤ * * @param id ä¸»é® */ void deleteById(Integer id); /** * å é¤ * * @param areas å®ä½å¯¹è±¡ */ void delete(Areas areas); /** * æ¹é主é®å é¤ * * @param ids 主é®é */ void deleteByIdInBatch(List<Integer> ids); /** * 䏻鮿´æ° * * @param areas å®ä½å¯¹è±¡ */ void updateById(Areas areas); /** * æ¹é䏻鮿´æ° * * @param areass å®ä½é */ void updateByIdInBatch(List<Areas> areass); /** * 䏻鮿¥è¯¢ * * @param id ä¸»é® * @return Areas */ Areas findById(Integer id); /** * æ ¹æ®idåtypeæ¥è¯¢å¯¹è±¡ä¿¡æ¯ * @param id * @param type null æ¥è¯¢å ¨é¨ 0ç份 1åå¸ 2åºå * @return */ Areas findById(Integer id,Integer type); Areas findByName(String name,Integer type); Areas findByNameAndParentId(String name,Integer type,Integer parentId); List<Areas> findByParentId(Integer type,Integer parentId); List<Areas> findChildByParentId(Integer id,List<Areas> list); boolean isAreaValid(String proName,String cityName,String areaName); /** * æ¡ä»¶æ¥è¯¢åæ¡è®°å½ * * @param areas å®ä½å¯¹è±¡ * @return Areas */ Areas findOne(Areas areas); /** * æ¡ä»¶æ¥è¯¢ * * @param areas å®ä½å¯¹è±¡ * @return List<Areas> */ List<Areas> findList(Areas areas); /** * å页æ¥è¯¢ * * @param pageWrap å页对象 * @return PageData<Areas> */ PageData<Areas> findPage(PageWrap<Areas> pageWrap); /** * æ¡ä»¶ç»è®¡ * * @param areas å®ä½å¯¹è±¡ * @return long */ long count(Areas areas); void cacheData(); Areas findByCityAndArea(String cityName, String areasName); String getAddress(Integer cityId,Integer areaId); List<Areas> listByParentId(Areas model); } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/AreasServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,458 @@ package com.doumee.service.business.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.AreasMapper; import com.doumee.dao.business.model.Areas; import com.doumee.service.business.AreasService; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; /** * çå¸åºä¿¡æ¯è¡¨Serviceå®ç° * @author æ±è¹è¹ * @date 2023/02/15 08:55 */ @Service public class AreasServiceImpl implements AreasService { public static List<Areas> ALL_AREA_LIST; public static List<Areas> PROVINCE_LIST; public static List<Areas> CITY_LIST; public static List<Areas> AREA_LIST; public static List<Areas> ALL_AREA_TREE; @Autowired private AreasMapper areasMapper; @Override public Integer create(Areas areas) { LoginUserInfo user = areas.getLoginUserInfo(); /* if (Objects.isNull(areas.getParentId())){ areas.setType(Constants.ZERO); }else { Areas parentArea = areasMapper.selectById(areas.getParentId()); if (Objects.isNull(parentArea)){ areas.setType(Constants.ZERO); }else { areas.setType(parentArea.getType()+Constants.ONE); } }*/ areas.setCreateDate(new Date()); areas.setEditDate(new Date()); areas.setCreator(user.getId()); areas.setEditor(user.getId()); areas.setIsdeleted(Constants.ZERO); areasMapper.insert(areas); //å·æ°ç¼åæ°æ® cacheData(); return areas.getId(); } @Override public void deleteById(Integer id) { areasMapper.deleteById(id); //å·æ°ç¼åæ°æ® cacheData(); } @Override public void delete(Areas areas) { UpdateWrapper<Areas> deleteWrapper = new UpdateWrapper<>(areas); areasMapper.delete(deleteWrapper); //å·æ°ç¼åæ°æ® cacheData(); } @Override public void deleteByIdInBatch(List<Integer> ids) { if (CollectionUtils.isEmpty(ids)) { return; } areasMapper.deleteBatchIds(ids); //å·æ°ç¼åæ°æ® cacheData(); } @Override public void updateById(Areas areas) { UpdateWrapper<Areas> wrapper = new UpdateWrapper<>(); wrapper.lambda().eq(Areas::getId,areas.getId()); Areas update = new Areas(); update.setName(areas.getName()); update.setSortnum(areas.getSortnum()); areasMapper.update(update,wrapper); //å·æ°ç¼åæ°æ® cacheData(); } @Override public void updateByIdInBatch(List<Areas> areass) { if (CollectionUtils.isEmpty(areass)) { return; } for (Areas areas: areass) { this.updateById(areas); } //å·æ°ç¼åæ°æ® cacheData(); } @Override public Areas findById(Integer id) { if(ALL_AREA_LIST!=null){ for(Areas a : ALL_AREA_LIST){ if(Constants.equalsInteger(a.getId(),id)){ return a; } } } // return areasMapper.selectById(id); return null; } @Override public Areas findById(Integer id,Integer type) { List<Areas> list = null; if(type == null){ list = ALL_AREA_LIST; }else if(Constants.equalsInteger(type,Constants.ZERO)){ list = PROVINCE_LIST; }else if(Constants.equalsInteger(type,Constants.ONE)){ list = CITY_LIST; } else if (Constants.equalsInteger(type,Constants.TWO)){ list = AREA_LIST; } if(list!=null){ for(Areas a : list){ if(Constants.equalsInteger(a.getId(),id)){ return a; } } } return null; } @Override public Areas findByName(String name,Integer type){ List<Areas> list = null; if(type == null){ list = ALL_AREA_LIST; }else if(Constants.equalsInteger(type,Constants.ZERO)){ list = PROVINCE_LIST; }else if(Constants.equalsInteger(type,Constants.ONE)){ list = CITY_LIST; } else if (Constants.equalsInteger(type,Constants.TWO)){ list = AREA_LIST; } if(list!=null){ for(Areas a : list){ if(StringUtils.equals(name,a.getName())){ return a; } } } return null; } @Override public Areas findByNameAndParentId(String name,Integer type,Integer parentId){ List<Areas> list = null; if(type == null){ list = ALL_AREA_LIST; }else if(Constants.equalsInteger(type,Constants.ZERO)){ list = PROVINCE_LIST; }else if(Constants.equalsInteger(type,Constants.ONE)){ list = CITY_LIST; } else if (Constants.equalsInteger(type,Constants.TWO)){ list = AREA_LIST; } if(list!=null){ for(Areas a : list){ if(StringUtils.equals(name,a.getName()) && Constants.equalsInteger(parentId,a.getParentId())){ return a; } } } return null; } @Override public List<Areas> findByParentId(Integer type, Integer parentId) { List<Areas> list = null; if(type == null){ list = ALL_AREA_LIST; }else if(Constants.equalsInteger(type,Constants.ZERO)){ list = PROVINCE_LIST; }else if(Constants.equalsInteger(type,Constants.ONE)){ list = CITY_LIST; } else if (Constants.equalsInteger(type,Constants.TWO)){ list = AREA_LIST; } if(list!=null){ return list.stream().filter(s->Constants.equalsInteger(s.getParentId(),parentId)).collect(Collectors.toList()); } return null; } @Override public List<Areas> findChildByParentId(Integer id,List<Areas> list){ List<Areas> result =null; if(list == null){ list = ALL_AREA_LIST; } if(list!=null && list.size()>0){ for(Areas model :list){ if(Constants.equalsInteger(id,model.getParentId())){ if(result == null){ result = new ArrayList<>(); } result.add(model ); } } } return result; } @Override public boolean isAreaValid(String proName,String cityName,String areaName){ Areas pro = findByName(proName,Constants.ZERO); if(pro == null){ return false; } Areas city = findByName(proName,Constants.ONE); if(city == null && !Constants.equalsInteger(city.getParentId(),pro.getId())){ return false; } Areas area = findByName(proName,Constants.TWO); if(area == null && !Constants.equalsInteger(area.getParentId(),city.getId())){ return false; } return false; } @Override public Areas findOne(Areas areas) { QueryWrapper<Areas> wrapper = new QueryWrapper<>(areas); return areasMapper.selectOne(wrapper); } @Override public List<Areas> findList(Areas areas) { List<Areas> list = null; Integer type =areas.getType(); if(type == null){ list = ALL_AREA_LIST; }else if(Constants.equalsInteger(type,Constants.ZERO)){ list = PROVINCE_LIST; }else if(Constants.equalsInteger(type,Constants.ONE)){ list = CITY_LIST; } else if (Constants.equalsInteger(type,Constants.TWO)){ list = AREA_LIST; } List<Areas> result = null; if(StringUtils.isNotBlank(areas.getName())){ for(Areas a : list){ if(StringUtils.contains(a.getName(),areas.getName())){ if(result == null){ result = new ArrayList<>(); } result.add(a); } } return result; } return list; } @Override public List<Areas> listByParentId(Areas areas) { List<Areas> list = null; Integer type =areas.getType(); if(type == null){ list = ALL_AREA_LIST; }else if(Constants.equalsInteger(type,Constants.ZERO)){ list = PROVINCE_LIST; }else if(Constants.equalsInteger(type,Constants.ONE)){ list = CITY_LIST; } else if (Constants.equalsInteger(type,Constants.TWO)){ list = AREA_LIST; } List<Areas> result = null; if(list!=null){ for(Areas a : list){ if(result == null){ result = new ArrayList<>(); } if( areas.getParentId() == null ||(areas.getParentId() !=null) && Constants.equalsInteger(a.getParentId(),areas.getParentId())){ Areas t = new Areas(); BeanUtils.copyProperties(a,t); t.setChildList(null); result.add(t); } } } return result; } @Override public void cacheData() { Areas a = new Areas(); a.setIsdeleted(Constants.ZERO); ALL_AREA_LIST = null; PROVINCE_LIST =null; CITY_LIST=null; AREA_LIST = null; ALL_AREA_TREE = null; ALL_AREA_LIST = areasMapper.selectList(new QueryWrapper<>(a).lambda().orderByDesc(Areas::getSortnum)); if(ALL_AREA_LIST!=null){ for(Areas model : ALL_AREA_LIST){ if(Constants.equalsInteger(model.getType(),Constants.ZERO)){ if(PROVINCE_LIST == null){ PROVINCE_LIST = new ArrayList<>(); } PROVINCE_LIST.add(model); }else if(Constants.equalsInteger(model.getType(),Constants.ONE)){ if(CITY_LIST == null){ CITY_LIST = new ArrayList<>(); } CITY_LIST.add(model); if(model.getParentId() != null){ Areas p = findById(model.getParentId()); if(p!=null ){ model.setProvinceId(p.getId()); model.setProvinceName(p.getName()); } } }else if(Constants.equalsInteger(model.getType(),Constants.TWO)){ if(AREA_LIST == null){ AREA_LIST = new ArrayList<>(); } AREA_LIST.add(model); Areas city = findById(model.getParentId()); if(city!=null ){ model.setCityId(city.getId()); model.setCityName(city.getName()); if(city!=null && city.getParentId()!=null){ Areas p = findById(city.getParentId()); if(p!=null ){ model.setProvinceId(p.getId()); model.setProvinceName(p.getName()); } } } } } } if(CITY_LIST!=null){ for(Areas aa : CITY_LIST){ aa.setChildList(findChildByParentId(aa.getId(), AREA_LIST)); } } if(PROVINCE_LIST!=null){ for(Areas aa : PROVINCE_LIST){ aa.setChildList(findChildByParentId(aa.getId(),CITY_LIST)); } } System.out.println("================="); } @Override public PageData<Areas> findPage(PageWrap<Areas> pageWrap) { IPage<Areas> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper<Areas> queryWrapper = new QueryWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); if (pageWrap.getModel().getId() != null) { queryWrapper.lambda().eq(Areas::getId, pageWrap.getModel().getId()); } if (pageWrap.getModel().getCreator() != null) { queryWrapper.lambda().eq(Areas::getCreator, pageWrap.getModel().getCreator()); } if (pageWrap.getModel().getCreateDate() != null) { queryWrapper.lambda().ge(Areas::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); queryWrapper.lambda().le(Areas::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); } if (pageWrap.getModel().getEditor() != null) { queryWrapper.lambda().eq(Areas::getEditor, pageWrap.getModel().getEditor()); } if (pageWrap.getModel().getEditDate() != null) { queryWrapper.lambda().ge(Areas::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); queryWrapper.lambda().le(Areas::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); } if (pageWrap.getModel().getIsdeleted() != null) { queryWrapper.lambda().eq(Areas::getIsdeleted, pageWrap.getModel().getIsdeleted()); } if (pageWrap.getModel().getName() != null) { queryWrapper.lambda().eq(Areas::getName, pageWrap.getModel().getName()); } if (pageWrap.getModel().getInfo() != null) { queryWrapper.lambda().eq(Areas::getInfo, pageWrap.getModel().getInfo()); } if (pageWrap.getModel().getCode() != null) { queryWrapper.lambda().eq(Areas::getCode, pageWrap.getModel().getCode()); } if (pageWrap.getModel().getParentId() != null) { queryWrapper.lambda().eq(Areas::getParentId, pageWrap.getModel().getParentId()); } if (pageWrap.getModel().getType() != null) { queryWrapper.lambda().eq(Areas::getType, pageWrap.getModel().getType()); } for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { queryWrapper.orderByDesc(sortData.getProperty()); } else { queryWrapper.orderByAsc(sortData.getProperty()); } } return PageData.from(areasMapper.selectPage(page, queryWrapper)); } @Override public long count(Areas areas) { QueryWrapper<Areas> wrapper = new QueryWrapper<>(areas); return areasMapper.selectCount(wrapper); } @Override public Areas findByCityAndArea(String cityName, String areasName) { Areas city = findByName(cityName,Constants.ONE); if(city !=null){ return findByNameAndParentId(areasName,Constants.TWO,city.getId()); } return null; } @Override public String getAddress(Integer cityId,Integer areaId){ Areas cityAreas = findById(cityId, Constants.ONE); Areas areas = findById(areaId, Constants.TWO); String cityName = Optional.ofNullable(cityAreas) .map(s -> s.getProvinceName() + s.getName()) .orElseThrow(() -> new BusinessException(ResponseStatus.BAD_REQUEST)); String areaName = Optional.ofNullable(areas).map(s -> s.getName()).orElse(""); return cityName+areaName; } }