Browse Source

物业项目详情以及列表接口实现

hotfix/yujt_opt
zhangyuan 5 years ago
parent
commit
de67956903
  1. 73
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/controller/AppPropertyProjectController.java
  2. 18
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/controller/PropertyProjectController.java
  3. 24
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/dao/PropertyProjectDao.java
  4. 24
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/service/PropertyProjectService.java
  5. 16
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/service/impl/PropertyProjectServiceImpl.java
  6. 54
      epdc-cloud-property/src/main/resources/mapper/project/PropertyProjectDao.xml

73
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/controller/AppPropertyProjectController.java

@ -0,0 +1,73 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.project.controller;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.project.form.ProjectDetailFormDTO;
import com.elink.esua.epdc.dto.project.form.ProjectListFormDTO;
import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO;
import com.elink.esua.epdc.dto.project.result.ProjectListResultDTO;
import com.elink.esua.epdc.modules.project.service.PropertyProjectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 物业项目表
*
* @author zhangyuan qu@elink-cn.com
* @since v1.0.0 2020-05-09
*/
@RestController
@RequestMapping(Constant.EPDC_APP + "project")
public class AppPropertyProjectController {
@Autowired
private PropertyProjectService propertyProjectService;
/**
* 项目列表
*
* @return
* @params [id]
* @author zhangyuan
* @since 2020/5/13 15:37
*/
@GetMapping("list")
public Result<List<ProjectListResultDTO>> list(@RequestBody ProjectListFormDTO formDto) {
List<ProjectListResultDTO> page = propertyProjectService.list(formDto);
return new Result<List<ProjectListResultDTO>>().ok(page);
}
/**
* 项目详情
*
* @return
* @params [id]
* @author zhangyuan
* @since 2020/5/13 15:37
*/
@GetMapping("detail")
public Result<ProjectDetailResultDTO> detail(@RequestBody ProjectDetailFormDTO formDto) {
ProjectDetailResultDTO data = propertyProjectService.getProjectDetailById(formDto);
return new Result<ProjectDetailResultDTO>().ok(data);
}
}

18
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/controller/PropertyProjectController.java

@ -26,6 +26,10 @@ import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.dto.project.PropertyProjectDTO;
import com.elink.esua.epdc.dto.project.form.ProjectDetailFormDTO;
import com.elink.esua.epdc.dto.project.form.ProjectListFormDTO;
import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO;
import com.elink.esua.epdc.dto.project.result.ProjectListResultDTO;
import com.elink.esua.epdc.modules.project.excel.PropertyProjectExcel;
import com.elink.esua.epdc.modules.project.service.PropertyProjectService;
import org.springframework.beans.factory.annotation.Autowired;
@ -43,26 +47,26 @@ import java.util.Map;
* @since v1.0.0 2020-05-09
*/
@RestController
@RequestMapping("propertyproject")
@RequestMapping("project")
public class PropertyProjectController {
@Autowired
private PropertyProjectService propertyProjectService;
@GetMapping("page")
public Result<PageData<PropertyProjectDTO>> page(@RequestParam Map<String, Object> params){
public Result<PageData<PropertyProjectDTO>> page(@RequestParam Map<String, Object> params) {
PageData<PropertyProjectDTO> page = propertyProjectService.page(params);
return new Result<PageData<PropertyProjectDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<PropertyProjectDTO> get(@PathVariable("id") String id){
public Result<PropertyProjectDTO> get(@PathVariable("id") String id) {
PropertyProjectDTO data = propertyProjectService.get(id);
return new Result<PropertyProjectDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody PropertyProjectDTO dto){
public Result save(@RequestBody PropertyProjectDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
propertyProjectService.save(dto);
@ -70,7 +74,7 @@ public class PropertyProjectController {
}
@PutMapping
public Result update(@RequestBody PropertyProjectDTO dto){
public Result update(@RequestBody PropertyProjectDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
propertyProjectService.update(dto);
@ -78,7 +82,7 @@ public class PropertyProjectController {
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
public Result delete(@RequestBody String[] ids) {
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
propertyProjectService.delete(ids);

24
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/dao/PropertyProjectDao.java

@ -18,7 +18,9 @@
package com.elink.esua.epdc.modules.project.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.group.GroupManagementDTO;
import com.elink.esua.epdc.dto.project.form.ProjectDetailFormDTO;
import com.elink.esua.epdc.dto.project.form.ProjectListFormDTO;
import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO;
import com.elink.esua.epdc.modules.project.entity.PropertyProjectEntity;
import org.apache.ibatis.annotations.Mapper;
@ -43,4 +45,24 @@ public interface PropertyProjectDao extends BaseDao<PropertyProjectEntity> {
* @since 2019/10/11 14:54
*/
List<PropertyProjectEntity> selectListOfGroups(Map<String, Object> params);
/**
* 项目列表
*
* @return java.util.List<com.elink.esua.epdc.dto.group.GroupDTO>
* @params [params]
* @author zhangyuan
* @since 2019/10/11 14:54
*/
List<PropertyProjectEntity> listAll(ProjectListFormDTO dto);
/**
* 项目详情
*
* @return java.util.List<com.elink.esua.epdc.dto.group.GroupDTO>
* @params [params]
* @author zhangyuan
* @since 2019/10/11 14:54
*/
ProjectDetailResultDTO selectDetailById(ProjectDetailFormDTO dto);
}

24
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/service/PropertyProjectService.java

@ -20,6 +20,10 @@ package com.elink.esua.epdc.modules.project.service;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.dto.project.PropertyProjectDTO;
import com.elink.esua.epdc.dto.project.form.ProjectDetailFormDTO;
import com.elink.esua.epdc.dto.project.form.ProjectListFormDTO;
import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO;
import com.elink.esua.epdc.dto.project.result.ProjectListResultDTO;
import com.elink.esua.epdc.modules.project.entity.PropertyProjectEntity;
import java.util.List;
@ -92,4 +96,24 @@ public interface PropertyProjectService extends BaseService<PropertyProjectEntit
* @date 2020-05-09
*/
void delete(String[] ids);
/**
* 物业项目列表
*
* @param dto
* @return void
* @author zhangy
* @date 2020-05-09
*/
List<ProjectListResultDTO> list(ProjectListFormDTO dto);
/**
* 物业项目详情
*
* @param dto
* @return void
* @author zhangy
* @date 2020-05-09
*/
ProjectDetailResultDTO getProjectDetailById(ProjectDetailFormDTO dto);
}

16
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/service/impl/PropertyProjectServiceImpl.java

@ -27,6 +27,10 @@ import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
import com.elink.esua.epdc.dto.project.form.ProjectDetailFormDTO;
import com.elink.esua.epdc.dto.project.form.ProjectListFormDTO;
import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO;
import com.elink.esua.epdc.dto.project.result.ProjectListResultDTO;
import com.elink.esua.epdc.modules.feign.AdminFeignClient;
import com.elink.esua.epdc.modules.group.dao.GroupDao;
import com.elink.esua.epdc.modules.group.entity.GroupEntity;
@ -36,7 +40,6 @@ import com.elink.esua.epdc.modules.project.entity.PropertyProjectEntity;
import com.elink.esua.epdc.modules.project.redis.PropertyProjectRedis;
import com.elink.esua.epdc.modules.project.service.PropertyProjectService;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -172,4 +175,15 @@ public class PropertyProjectServiceImpl extends BaseServiceImpl<PropertyProjectD
groupDao.deleteGroupByProjectIds(Arrays.asList(ids));
}
@Override
public List<ProjectListResultDTO> list(ProjectListFormDTO dto) {
List<PropertyProjectEntity> entity = baseDao.listAll(dto);
return ConvertUtils.sourceToTarget(entity, ProjectListResultDTO.class);
}
@Override
public ProjectDetailResultDTO getProjectDetailById(ProjectDetailFormDTO dto) {
return baseDao.selectDetailById(dto);
}
}

54
epdc-cloud-property/src/main/resources/mapper/project/PropertyProjectDao.xml

@ -50,4 +50,58 @@
ORDER BY
CREATED_TIME DESC
</select>
<select id="listAll" resultType="com.elink.esua.epdc.modules.project.entity.PropertyProjectEntity">
SELECT
<include refid="Base_Column_List" />
FROM
epdc_property_project
WHERE
DEL_FLAG = '0'
<if test="gridId != null and gridId != ''">
AND (GRID_ID = #{gridId}
OR find_in_set(#{gridId},ALL_DEPT_IDS))
</if>
ORDER BY
CREATED_TIME DESC
</select>
<select id="selectDetailById" resultType="com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO">
SELECT
ep.ID,
ep.PROJECT_NAME,
ep.PROPERTY_NAME,
ep.PROPERTY_TEL,
ep.PROPERTY_MANAGER,
ep.PROPERTY_ADDRESS,
eg.STATE AS GROUP_STATE,
eg.GROUP_NAME,
eg.GROUP_AVATAR,
COUNT(eg.ID) AS NUMBER_GROUP_MEMBER,
SUM(
CASE
WHEN eu.PARTY_MEMBER = '1' THEN
1
ELSE
0
END
) AS NUMBER_GROUP_PARTY_MEMBER
FROM
epdc_property_project ep
LEFT JOIN epdc_group eg ON ep.id = eg.REFERENCE_BUSINESS_ID
LEFT JOIN epdc_user_group eu ON eg.id = eu.GROUP_ID
WHERE
ep.DEL_FLAG = '0'
AND eg.DEL_FLAG = '0'
AND eu.DEL_FLAG = '0'
<if test="id != null and id != ''">
AND ep.ID = #{id}
</if>
<if test="gridId != null and gridId != ''">
AND (ep.GRID_ID = #{gridId}
OR find_in_set(#{gridId},ep.ALL_DEPT_IDS))
</if>
GROUP BY
ep.ID
</select>
</mapper>
Loading…
Cancel
Save