From 0c29adcf7692ad992c70ff1207d7d098a635535c Mon Sep 17 00:00:00 2001 From: lizijie <lzjiiie@163.com> Date: Thu, 10 Feb 2022 13:25:15 +0800 Subject: [PATCH] 服务范围列表条件查询接口 --- screen-api/src/main/java/com/moral/api/service/impl/ServicesScopeServiceImpl.java | 103 ++++++++++++++++++++++++++++++++++ screen-api/src/main/java/com/moral/api/controller/ServicesScopeController.java | 59 +++++++++++++++++++ screen-api/src/main/java/com/moral/api/service/ServicesScopeService.java | 12 ++++ 3 files changed, 174 insertions(+), 0 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/controller/ServicesScopeController.java b/screen-api/src/main/java/com/moral/api/controller/ServicesScopeController.java new file mode 100644 index 0000000..d8b5928 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/controller/ServicesScopeController.java @@ -0,0 +1,59 @@ +package com.moral.api.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.moral.api.entity.Organization; +import com.moral.api.entity.ServicesScope; +import com.moral.api.mapper.OrganizationMapper; +import com.moral.api.service.*; +import com.moral.constant.Constants; +import com.moral.constant.ResponseCodeEnum; +import com.moral.constant.ResultMessage; +import com.moral.util.DateUtils; +import com.moral.util.WebUtils; +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @program: screen + * @description: ������������ + * @author: lizijie + * @create: 2021-11-10 16:05 + **/ +@Slf4j +@Api(tags = {"������������"}) +@RestController +@CrossOrigin(origins = "*", maxAge = 3600) +@RequestMapping("/serviceScope") +public class ServicesScopeController { + + @Resource + private OrganizationService organizationService; + + @Resource + private ServicesScopeService servicesScopeService; + + @RequestMapping(value = "getDataByOrgIdAndCondition", method = RequestMethod.GET) + @ResponseBody + public ResultMessage getDataByOrgIdAndCondition(HttpServletRequest request) throws ParseException { + Map<String, Object> parameters = WebUtils.getParametersStartingWith(request,null); + Object orgId = parameters.get("organization_id"); + if (ObjectUtils.isEmpty(orgId)){ + return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + } + Organization organization = organizationService.getOrganizationById(Integer.parseInt(orgId.toString())); + if (ObjectUtils.isEmpty(organization)){ + return ResultMessage.fail(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getCode(), ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getMsg()); + } + List<Map<String, Object>> resultList = servicesScopeService.getDateByOrgIdAndCondition(parameters); + return ResultMessage.ok(resultList); + } + +} diff --git a/screen-api/src/main/java/com/moral/api/service/ServicesScopeService.java b/screen-api/src/main/java/com/moral/api/service/ServicesScopeService.java index 568b5af..008d11d 100644 --- a/screen-api/src/main/java/com/moral/api/service/ServicesScopeService.java +++ b/screen-api/src/main/java/com/moral/api/service/ServicesScopeService.java @@ -3,6 +3,9 @@ import com.moral.api.entity.ServicesScope; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; +import java.util.Map; + /** * <p> * ��������� @@ -12,5 +15,14 @@ * @since 2022-01-19 */ public interface ServicesScopeService extends IService<ServicesScope> { + + /** + *@Description: ������������id��������������������� + *@Param: [map] + *@return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>> + *@Author: lizijie + *@Date: 2022/2/9 14:04 + **/ + List<Map<String, Object>> getDateByOrgIdAndCondition(Map map); } diff --git a/screen-api/src/main/java/com/moral/api/service/impl/ServicesScopeServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/ServicesScopeServiceImpl.java index f89f009..a0d4997 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/ServicesScopeServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/ServicesScopeServiceImpl.java @@ -1,10 +1,25 @@ package com.moral.api.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.moral.api.entity.Organization; import com.moral.api.entity.ServicesScope; +import com.moral.api.mapper.OrganizationMapper; import com.moral.api.mapper.ServicesScopeMapper; +import com.moral.api.pojo.vo.organization.OrganizationServicesScopeVO; +import com.moral.api.service.OrganizationService; import com.moral.api.service.ServicesScopeService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.constant.Constants; +import io.swagger.models.auth.In; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * <p> @@ -17,4 +32,92 @@ @Service public class ServicesScopeServiceImpl extends ServiceImpl<ServicesScopeMapper, ServicesScope> implements ServicesScopeService { + @Autowired + private OrganizationMapper organizationMapper; + + @Autowired + private ServicesScopeMapper servicesScopeMapper; + + @Autowired + private OrganizationService organizationService; + + @Override + public List<Map<String, Object>> getDateByOrgIdAndCondition(Map map) { + int orgId = Integer.parseInt(map.get("organization_id").toString()); + //���������������������������������id + List<Integer> allOrgId = new ArrayList<>(); + allOrgId.add(orgId); + //������������ + //��������������� + List<Organization> allChildrenOrganization = organizationService.getChildrenOrganizationsById(orgId); + if (!ObjectUtils.isEmpty(allChildrenOrganization) || allChildrenOrganization.size() < 1){ + for (Organization organization:allChildrenOrganization) { + allOrgId.add(organization.getId()); + } + } + //������������ + List<Integer> allOrgIdWithoutDuplicates = allOrgId.stream().distinct().collect(Collectors.toList()); + List<Map<String,Object>> resultList = new ArrayList<>(); + for (int organizationId:allOrgIdWithoutDuplicates) { + Map<String,Object> resultMap = new HashMap<>(); + QueryWrapper<Organization> organizationQueryWrapper = new QueryWrapper<>(); + organizationQueryWrapper.eq("is_delete",Constants.NOT_DELETE); + organizationQueryWrapper.eq("id",organizationId); + if (!ObjectUtils.isEmpty(map.get("province_code"))){ + organizationQueryWrapper.eq("province_code",Integer.parseInt(map.get("province_code").toString())); + } + if (!ObjectUtils.isEmpty(map.get("city_code"))){ + organizationQueryWrapper.eq("city_code",Integer.parseInt(map.get("city_code").toString())); + } + if (!ObjectUtils.isEmpty(map.get("area_code"))){ + organizationQueryWrapper.eq("area_code",Integer.parseInt(map.get("area_code").toString())); + } + Organization organization = new Organization(); + organization = organizationMapper.selectById(organizationId); + if (ObjectUtils.isEmpty(organization)){ + continue; + } + resultMap.put("organization",organization); + QueryWrapper<ServicesScope> servicesScopeQueryWrapper = new QueryWrapper<>(); + servicesScopeQueryWrapper.eq("is_delete",Constants.NOT_DELETE); + servicesScopeQueryWrapper.eq("organization_id",organizationId); + if (!ObjectUtils.isEmpty(map.get("name"))){ + servicesScopeQueryWrapper.like("name",map.get("name").toString()); + } + List<ServicesScope> servicesScopes = new ArrayList<>(); + servicesScopes = servicesScopeMapper.selectList(servicesScopeQueryWrapper); + if (servicesScopes.size()<1){ + continue; + } + resultMap.put("servicesScopes",servicesScopes); + resultList.add(resultMap); + } + if (resultList.size()<1){ + return null; + } + return resultList; + } + + private OrganizationServicesScopeVO treeStructure(int orgId){ + OrganizationServicesScopeVO organizationServicesScopeVO = new OrganizationServicesScopeVO(); + Organization organization = organizationMapper.selectById(orgId); + organizationServicesScopeVO.setOrganization(organization); + QueryWrapper<Organization> chileOrganizationQueryWrapper = new QueryWrapper<>(); + chileOrganizationQueryWrapper.eq("is_delete",Constants.NOT_DELETE); + chileOrganizationQueryWrapper.eq("parent_id",orgId); + List<Organization> childOrganizations = new ArrayList<>(); + childOrganizations = organizationMapper.selectList(chileOrganizationQueryWrapper); + if (childOrganizations.size()>0){ + List<OrganizationServicesScopeVO> organizationServicesScopeVOS = new ArrayList<>(); + for (Organization childOrganization:childOrganizations) { + OrganizationServicesScopeVO organizationServicesScopeVO1 = treeStructure(childOrganization.getId()); + if (ObjectUtils.isEmpty(organizationServicesScopeVO1)){ + organizationServicesScopeVOS.add(organizationServicesScopeVO1); + } + } + organizationServicesScopeVO.setOrganizationServicesScopeVOS(organizationServicesScopeVOS); + } + //servicesScopeMapper.selectList() + return null; + } } -- Gitblit v1.8.0